Как правильно обрабатывать запросы сайтов с помощью обработчиков файлов cookie в Python3? - PullRequest
3 голосов
/ 16 ноября 2010

Я пишу скрипт на 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, полученную в результате успешной аутентификации для будущих запросов

1 Ответ

0 голосов
/ 13 мая 2011

У меня была эта проблема однажды. Я не могу получить cookie, управление файлами cookie работает автоматически. Разочаровав меня в течение нескольких дней, я обработал печенье вручную. То есть получает содержимое «Set-Cookie» из заголовка ответа, сохраняя его в безопасном месте. Впоследствии, при любом запросе к этому серверу я установлю «Cookie» в заголовок запроса со значением, которое я получил ранее.

...