我正在嘗試使用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