今天学习cookie,接着上一篇地cookie使用,接着练习保存cookie信息
先上代码
from urllib.request import Request,build_opener,HTTPCookieProcessor
from urllib.parse import urlencode
from http.cookiejar import MozillaCookieJar
#通过获取cookie信息并将其保存下来
def get_cookie():
login_url='https://accounts.douban.com/j/mobile/login/basic'
header={
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:74.0) Gecko/20100101 Firefox/74.0'
}
from_data={
'name':'15837072390',
'password':'ma181230'
}
f_data=urlencode(from_data).encode()
request=Request(login_url,headers=header,data=f_data)
cookie_jar=MozillaCookieJar() # 构造可保存cookie的控制器
handler=HTTPCookieProcessor(cookie_jar) #利用HTTPCookieProcessor对象来创建cookie处理器
opener=build_opener(handler) # 构造opener
response=opener.open(request)
cookie_jar.save('cookie.txt',ignore_expires=True,ignore_discard=True) #括号中后两个参数代表着无论这个cookie还能不能用都将其保存
#直接使用上面保存下来的cookie
def use_cookie():
info_url='https://www.douban.com/people/190280766/photos'
header={
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:74.0) Gecko/20100101 Firefox/74.0'
}
request=Request(info_url,headers=header)
cookie_jar=MozillaCookieJar() # 构造可保存cookie的控制器
cookie_jar.load('cookie.txt',ignore_expires=True,ignore_discard=True)
handler=HTTPCookieProcessor(cookie_jar)
opener=build_opener(handler)
response=opener.open(request)
print(response.read().decode())
if __name__ == '__main__':
#ger_cookie() ***************①
use_cookie() #************②
代码的作用在其中已经做了标识,最后两行第一步先调用get_cookie()获取cookie信息并保存在一个文件里,第二步再使用use_cookie()来访问页面