我正在编写Python 3.1.2中的脚本,该脚本登录到站点然后开始发出请求。我可以毫无困难地登录,但在这之后,请求会返回一个错误,说明我还没有登录。我的代码看起来像这样:
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信息?
答案 0 :(得分:0)
我曾经遇到过这个问题。我无法让cookie管理自动运行cookie。让我感到沮丧的几天,我最终手动处理了cookie。这是从响应头获取'Set-Cookie'的内容,将其保存在安全的地方。随后,对该服务器发出的任何请求,我都会将'Cookie'设置为请求标头,其中包含我之前获得的值。