Skip to main content
 首页 » 编程设计

python之通过 urllib/urllib2 发布请求

2025年05月04日11落叶

在你说什么之前,我环顾四周,发现解决方案没有用。我需要向 Python 中的登录脚本发出发布请求。网址看起来像 http://example.com/index.php?act=login ,然后它通过 POST 接受 username 和 password。谁能帮我解决这个问题?

我试过:

import urllib, urllib2, cookielib 
 
cj = cookielib.CookieJar() 
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj)) 
opener.addheaders.append(('User-agent', 'Mozilla/4.0')) 
opener.addheaders.append( ('Referer', 'http://www.hellboundhackers.org/index.php') ) 
 
login_data = urllib.urlencode({'username' : '[redacted]', 
                               'password' : '[redacted]' 
                               }) 
 
resp = opener.open('http://[redacted].org/index.php?act=login', login_data) 
print resp.read() 
resp.close() 

稍微修改一下:

import urllib, urllib2, cookielib 
 
cj = cookielib.CookieJar() 
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj)) 
opener.addheaders.append(('User-agent', 'Mozilla/4.0')) 
opener.addheaders.append( ('Referer', 'http://www.hellboundhackers.org/index.php') ) 
 
login_data = urllib.urlencode({'act' : 'login', 
                               'username' : '[redacted]', 
                               'password' : '[redacted]' 
                               }) 
 
resp = opener.open('http://[redacted].org/index.php', login_data) 
print resp.read() 
resp.close() 

请您参考如下方法:

您可能需要查看 HTML 源代码以找出登录表单操作 URL 是什么。有时它与页面 URL 本身相同,但也可能不同。但是由于您没有显示实际的 URL,我们无法在这方面帮助您。

<form>元素可能看起来像:

<form method="POST" action="/do_login"> 

在这种情况下,您将使用 /do_login在您的 POST 网址中。