3
我在Python 3.1.2中編寫腳本,登錄到一個站點,然後開始發出請求。我可以登錄,沒有任何巨大的困難,但這樣做後,請求返回一個錯誤,說明我還沒有登錄我的代碼如下所示:在Python3中使用cookie處理程序處理站點請求的正確方法是什麼?
import urllib.request
from http import cookiejar
from urllib.parse import urlencode
jar = cookiejar.CookieJar()
credentials = {'accountName': 'username', 'password': 'unenc_pw'}
credenc = urlencode(credentials)
opener = urllib.request.build_opener(urllib.request.HTTPCookieProcessor(jar))
urllib.request.install_opener(opener)
req = opener.open('http://www.wowarmory.com/?app=armory?login&cr=true', credenc)
test = opener.open('http://www.wowarmory.com/auctionhouse/search.json')
print(req.read())
print(test.read())
到第一請求的響應是我所希望的網頁爲了獲得在登錄時
到第二響應爲:
b'{"error":{"code":10005,"error":true,"message":"You must log in."},"command":{"sort":"RARITY","reverse":false,"pageSize":20,"end":20,"start":0,"minLvl":0,"maxLvl":0,"id":0,"qual":0,"classId":-1,"filterId":"-1"}}'
有我丟失的東西用我從成功認證爲將來的請求任何cookie信息?
我在Chrome和curl中獲得了與第二個URL完全相同的響應。你有理由相信第一個網址應該讓你登錄到第二個網站嗎? (順便說一句,它真的應該是'?app = armory?login&cr = true'?) – 2011-05-14 03:16:16