十、urllib库 - 实战– 知乎登录模拟实战(2)
http.cookiejar模块:
该模块主要的类有CookieJar、FileCookieJar、MozillaCookieJar、LWPCookieJar。
这四个类的作用分别如下:
1、CookieJar:管理HTTP cookie值、存储HTTP请求生成的cookie、向传出的HTTP请求添加cookie的对象。
2、FileCookieJar(filename,delayload= None,policy = None):从CookieJar 派生而来,用来创建FileCookieJar实例,检索cookie信息并将cookie存储到文件中。
Filename 是存储cookie的文件名。delayload为True时支持延迟访问访问文件,即只有在需要时才读取文件或在文件中存储数据。
3、MozillaCookieJar(filename,delayload= None,policy = None):从FileCookieJar 派生而来,创建与 Mozilla浏览器cookies.txt兼容的FileCookieJar 实例。
4、LWPCookieJar(filename,delayload= None,policy = None):从FileCookieJar 派生而来,创建与libwww-perl 标准的 Set-Cookie3 文件格式兼容的 FileCookieJar 实例。
示例代码:
# 从urllib 库导入 request 模块,从urllib 库导入 parse编码模块,从http.cookiejar 模块导入CookieJar类
fromurllib import request
fromurllib import parse
fromhttp.cookiejar import CookieJar
#登录链接:https://i.meishi.cc/login.php?redirect=https%3A%2F%2Fwww.meishij.net%2F 从登录界面输完密码进去,login 中看属性
# 个人网页 https://i.meishi.cc/cook.php?id=略
# 添加请求头
headers= {'user-agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36(KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36'}
# 1.登录
#1.1 创建cookiejar 对象
cookiejar= CookieJar()
#1.2 使用cookiejar 创建一个HTTPCookieProcess对象
handler= request.HTTPCookieProcessor(cookiejar)
#1.3 使用上一步创建的handler 创建一个opener
opener= request.build_opener(handler)
#1.4 使用opener 发送登录请求 (账号和密码)
post_url = 'https://i.meishi.cc/login.php?redirect=https%3A%2F%2Fwww.meishij.net%2F'
post_data = parse.urlencode({'username':'xxxxxxx@qq.com','password':'yyyyyyyy'})
req = request.Request(post_url,data = post_data.encode('utf-8'))
opener.open(req)
#2. 访问个人主页
url = 'https://i.meishi.cc/cook.php?id=14288257'
rq =request.Request(url,headers = headers)
resp = opener.open(rq)
print(resp.read().decode('utf-8'))
上一篇文章 第二章 网络请求(七) 2019-12-05 地址:
https://www.jianshu.com/p/558f9c7f4a67
下一篇文章 第二章 网络请求(九) 2019-12-07 地址:
https://www.jianshu.com/p/a854f48c20f9
以上资料内容来源网络,仅供学习交流,侵删请私信我,谢谢。