在Python中接受Cookies

时间:2009-02-08 14:09:05

标签: python cookies

如何在python脚本中接受cookie?

6 个答案:

答案 0 :(得分:19)

试试这个:

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)

照顾你想要的大部分内容。

更多信息:

答案 1 :(得分:6)

最简单的方法是使用requests库。

import requests
url = 'http://www.google.com/doodles/'
r = requests.get(url)
print r.cookies

答案 2 :(得分:3)

您可能需要查看cookielib

答案 3 :(得分:1)

我相信你的意思是拥有一个试图说HTTP的Python脚本。 我建议你使用一个自动处理cookie的高级库。 pycurl,mechanize,twill - 你选择。

对于Nikhil Chelliah:

我不明白这里有什么不清楚。

接受 Cookie发生在客户端。服务器可以设置 Cookie。

答案 4 :(得分:1)

目前还不清楚您是想要客户端还是服务器端解决方案。

对于客户端,cookielib将正常工作。 This answer和一些网络教程提供了更深入的解释。

如果这是服务器端问题,您应该使用一个负责所有样板的框架。我非常喜欢CherryPyweb.py如何处理它们,但API在任何库中都非常简单。

答案 5 :(得分:0)

有cookielib库。您还可以实现自己的cookie存储和策略,cookie可以在响应的set-cookie标头中找到(Set-Cookie:name = value),然后将其发送回服务器中的一个或多个Cookie头中。请求(Cookie:name = value)。