Как я могу принимать файлы cookie в python script?
Принять Cookies в Python
Ответ 1
Попробуйте следующее:
import urllib2
import cookielib
jar = cookielib.FileCookieJar("cookies")
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(jar))
print "Currently have %d cookies" % len(jar)
print "Getting page"
response = opener.open("http://google.com")
print response.headers
print "Got page"
print "Currently have %d cookies" % len(jar)
print jar
Он должен печатать
Currently have 0 cookies
...
Currently have 2 cookies
(Google всегда устанавливает файл cookie). Вам это действительно не нужно, если вы не хотите сохранять свои файлы cookie на диск и использовать их позже. Вы должны найти, что
urllib2.build_opener(HTTPCookieProcessor).open(url)
берет на себя большую часть того, что вы хотите.
Подробнее здесь:
Ответ 2
Возможно, вы захотите посмотреть cookielib.
Ответ 3
Самый простой способ - использовать requests библиотеку.
import requests
url = 'http://www.google.com/doodles/'
r = requests.get(url)
print r.cookies
Ответ 4
Я считаю, что вы имеете в виду Python script, который пытается говорить HTTP. Я предлагаю вам использовать библиотеку высокого уровня, которая автоматически обрабатывает файлы cookie. pycurl, mechanize, twill - вы выбираете.
Для Нихиля Челье:
Я не понимаю, что здесь неясно.
Принятие cookie происходит на стороне клиента. Сервер может установить файл cookie.
Ответ 5
Неясно, хотите ли вы клиентскую или серверную версию.
Для клиентской стороны cookielib будет работать нормально. Этот ответ и несколько веб-руководств предлагают более подробные объяснения.
Если это проблема на стороне сервера, вы должны использовать фреймворк, который заботится обо всех шаблонах. Мне очень нравится, как CherryPy и web.py обрабатывать их, но API довольно прост в любой библиотеке.
Ответ 6
Там библиотека cookielib. Вы также можете реализовать свое хранилище и политики для файлов cookie, куки файлы находятся в заголовке ответа set-cookie (Set-Cookie: name = value), после чего вы отправляете обратно сервер на один или несколько заголовков Cookie в request (Cookie: name = value).