如何在python脚本中接受cookie?
答案 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和一些网络教程提供了更深入的解释。
如果这是服务器端问题,您应该使用一个负责所有样板的框架。我非常喜欢CherryPy和web.py如何处理它们,但API在任何库中都非常简单。
答案 5 :(得分:0)
有cookielib库。您还可以实现自己的cookie存储和策略,cookie可以在响应的set-cookie标头中找到(Set-Cookie:name = value),然后将其发送回服务器中的一个或多个Cookie头中。请求(Cookie:name = value)。