Accept Cookies in Python

本秂侑毒 提交于 2019-12-30 03:15:31

问题


How can I accept cookies in a python script?


回答1:


Try this:

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

It should print

Currently have 0 cookies
...
Currently have 2 cookies

(Google always sets a cookie). You don't really need this much unless you want to save your cookies to disk and use them later. You should find that

urllib2.build_opener(HTTPCookieProcessor).open(url)

Takes care of most of what you want.

More info here:

  • HTTPCookieProcessor
  • build_opener
  • FileCookieJar
  • Urllib2 - the missing maual



回答2:


The easiest way is to use requests library.

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



回答3:


You might want to look at cookielib.




回答4:


It's unclear whether you want a client-side or a server-side solution.

For client-side, cookielib will work fine. This answer and a few web tutorials offer more in-depth explanations.

If this is a server-side problem, you should be using a framework that takes care of all the boilerplate. I really like how CherryPy and web.py handle them, but the API is pretty simple in any library.




回答5:


I believe you mean having a Python script that tries to speak HTTP. I suggest you to use a high-level library that handles cookies automatically. pycurl, mechanize, twill - you choose.

For Nikhil Chelliah:

I don't see what's not clear here.

Accepting a cookie happens client-side. The server can set a cookie.




回答6:


There's the cookielib library. You can also implement your own cookie storage and policies, the cookies are found in the set-cookie header of the response (Set-Cookie: name=value), then you send the back to a server in one or more Cookie headers in the request (Cookie: name=value).



来源:https://stackoverflow.com/questions/525773/accept-cookies-in-python

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!