urllib2 с печеньем - PullRequest
       29

urllib2 с печеньем

6 голосов
/ 05 января 2012

Я пытаюсь сделать запрос к RSS-каналу, который требует куки, используя python. Я думал, что с помощью urllib2 и добавления соответствующего заголовка будет достаточно, но в запросе говорится, что он не аутентифицирован.

Я предполагаю, что это может быть проблемой на стороне удаленных сайтов, но не был уверен. Как использовать urllib2 вместе с файлами cookie? Есть ли лучший пакет для этого (например, httplib, mechanize, curl)

Ответы [ 2 ]

13 голосов
/ 05 января 2012

Я бы использовал запросы пакет, документы , это намного проще в использовании, чем urlib2 (вменяемый API).

Если ответ содержит несколько файлов cookie, выможно быстро получить к ним доступ:

url = 'http://httpbin.org/cookies/set/requests-is/awesome'
r = requests.get(url)
print r.cookies #{'requests-is': 'awesome'}

Чтобы отправить свои собственные куки на сервер, вы можете использовать параметр куки:

url = 'http://httpbin.org/cookies'
cookies = dict(cookies_are='working')
r = requests.get(url, cookies=cookies)
r.content # '{"cookies": {"cookies_are": "working"}}'

http://docs.python -запросы.орг / EN / последние / пользователь / QuickStart / # печенье

5 голосов
/ 05 января 2012
import urllib2
opener = urllib2.build_opener()
opener.addheaders.append(('Cookie', 'cookiename=cookievalue'))
f = opener.open("http://example.com/")
...