Cookie是用来维持会话之间的状态,比如,将登录成功后的一些信息保存下来,一般常用的方式有两种:
1、通过Cookie保存会话信息 2、通过Session保存会话信息
如果是通过Cookie保存会话信息,会将所有的信息保存在客户端,当访问通过一个网站的其他页面的时候,会从Cookie中读取对应的信息,从而判断目前的会话状态
如果是通过Session保存会话信息,会将会话信息保存在服务端,但是服务端会给客户端发SessionID等信息,这些信息一般会存在客户端的Cookie中,然后在访问网站的其他页面的时候,会从Cookie中读取这一部分信息,然后交给服务端去验证
在python3中可以使用Cookiejar库去处理Cookie。
Cookie处理的常用思路是:
1、导入Cookie处理模块http.cookiejar
2、使用http.cookiejar.CookieJar()创建CookieJar对象
3、使用HTTPCookieProcessor创建cookie处理器,并以其为参数构建opener对象
4、创建全局默认的opener对象
import urllib.request
import urllib.parse
import http.cookiejar
url = ''
postdata = urllib.parser.urlencode({
"username":"",
"password":""
}
).encode('utf-8')
req = urllib.request.Request(url,postdata)
req.add_header("user-Agent",")
#使用http.cookiejar.CookieJar()创建CookieJar对象
cjar = http.cookiejar.CookieJar()
#使用HTTPCookieProcessor创建cookie处理器,并以其为参数都见opener对象
opener = urllib.request.build_opener(urllib.request.HTTPCookieProcessor(cjar))
#将opener安装为全局
urllib.request.install_opener(opener)
file = opener.open(req)
data = file.read()