Принять Cookies в Python - PullRequest
       13

Принять Cookies в Python

10 голосов
/ 08 февраля 2009

Как я могу принять куки в скрипте Python?

Ответы [ 6 ]

19 голосов
/ 09 февраля 2009

Попробуйте это:

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). Вам не нужно так много, если вы не хотите сохранять свои куки на диск и использовать их позже. Вы должны найти, что

urllib2.build_opener(HTTPCookieProcessor).open(url)

Заботится о большинстве того, что вы хотите.

Подробнее здесь:

6 голосов
/ 17 декабря 2012

Самый простой способ - использовать запросы библиотека.

import requests
url = 'http://www.google.com/doodles/'
r = requests.get(url)
print r.cookies
3 голосов
/ 08 февраля 2009

Возможно, вы захотите взглянуть на cookielib .

1 голос
/ 08 февраля 2009

Неясно, хотите ли вы решение на стороне клиента или на стороне сервера.

Для клиентской стороны cookielib будет работать нормально. Этот ответ и несколько веб-уроков предлагают более подробные объяснения.

Если это проблема на стороне сервера, вы должны использовать платформу, которая позаботится обо всем шаблоне. Мне действительно нравится, как CherryPy и web.py обрабатывают их, но API довольно прост в любой библиотеке.

1 голос
/ 08 февраля 2009

Я полагаю, вы имеете в виду наличие скрипта Python, который пытается говорить по HTTP. Я предлагаю вам использовать библиотеку высокого уровня, которая автоматически обрабатывает файлы cookie. Pycurl, механизировать, саржа - вы выбираете.

Для Никхила Челлиа:

Я не вижу, что здесь не ясно.

Принятие cookie происходит на стороне клиента. Сервер может установить cookie.

0 голосов
/ 08 февраля 2009

Есть библиотека cookielib. Вы также можете реализовать свое собственное хранилище и политики хранения файлов cookie, файлы cookie находятся в заголовке set-cookie ответа (Set-Cookie: name = value), а затем вы отправляете обратно на сервер в одном или нескольких заголовках Cookie в запрос (Cookie: имя = значение).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...