在你说什么之前,我环顾四周,发现解决方案没有用。我需要向 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 网址中。
