我正在尝试使用python脚本登录维基百科,但尽管遵循了here的说明,但我无法使其正常工作。使用python登录网站
import urllib
import urllib2
import cookielib
username = 'myname'
password = 'mypassword'
cj = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
opener.addheaders = [("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.6 (KHTML, like Gecko) Chrome/20.0.1092.0 Safari/536.6")]
login_data = urllib.urlencode({'wpName' : username, 'wpPassword' : password})
opener.open('http://en.wikipedia.org/w/index.php?title=Special:UserLogin', login_data)
resp = opener.open('http://en.wikipedia.org/wiki/Special:Watchlist')
我得到的只是“你没有登录”页面。我试图用脚本登录到另一个站点,结果相同。我怀疑这要么与cookie有关,要么我在这里错过了一些非常简单的事情。但我无法找到它。
尝试使用WireShark或类似的工具来检查通过网站登录时,所有的数据包,你应该看到什么Web应用程序实际发送到服务器。 – LavaScornedOven
您可以使用“live http header firefox”或“chrome developer tools”来查看一旦您点击登录按钮后发送的所有请求。正如我看到你在'login_data'中缺少了一些东西。 – RanRag
嗯,这意味着我需要先获取令牌并将其与我的用户名和密码一起发送? – Conti