1、使用cookie登陆html
1.直接把cookie复制下去,而后手动放到请求头git
2.http模块包含一些关于cookie的模块,经过他们咱们能够自动使用cookiegithub
(1)cookieJar浏览器
管理存储cookie,向传出的http请求添加cookie;cookie存储在内存中,CookieJar实例回收后cookie将消失;微信
(2)FileCookieJar(filename,delayload=None,policy=Nnone)cookie
使用文件管理cookie;filename是保存cookie的文件dom
filename是保存cookie的文件函数
(3)MozillaCookieJar(filename,delayload=None,policy=None)学习
建立于mocilla浏览器cookie,txt兼容的FileCookieJar实例大数据
(4)LwpCookieJar(filename,delayload-None,policy=None)
建立与libww-perl标准兼容的FileCookieJar实例
(5)他们的关系是:CookieJar-->FileCookirJar-->MozillaCookieJar & LwpCookieJa
3.利用cookiejar访问人人网
自动使用cookie登陆,大体流程为:(1)打开登录页面后自动经过用户名密码登陆;(2)自动提取反馈回来的cookie;(3)利用提取的cookie登陆隐私页面;
4.handler是Handler的实例,经常使用参看案例代码
(1)用来处理复杂请求
#生成cookie的管理器 cookie_handler = request.HTTPCookieProcessor(cookie) #建立http请求管理器 http_handler = request.HTTPHandler() #生成https管理器 https_handler = request.HTTPHandler()
(2)创立handler后,使用opener打开,打开后相应的业务由相应的handler处理
(3)cookie做为一个变量,打印出来
cookie的属性:
name:名称 value:值 domain:能够访问此cookie的域名 expires:过时时间 size:大小 Http字段
from urllib import request,parse from http import cookiejar #建立cookiejar实例 cookie = cookiejar.CookieJar() #生成cookie的管理器 cookie_handler = request.HTTPCookieProcessor(cookie) #建立http请求管理器 http_handler = request.HTTPHandler() #生成https管理器 https_handler = request.HTTPHandler() #建立请求管理器 opener = request.build_opener(http_handler,https_handler,cookie_handler) def login(): """ 负责初次登陆 须要输入用户名密码 :return: """ url = "http://www.renren.com/PLogin.do" data = { "email":"1215217867@qq.com", "password":"481648541615485" } #把数据进行编码 data = parse.urlencode(data) #建立一个请求对象 req = request.Request(url,data=data.encode()) #使用opener发起请求 rep = opener.open(req) def getHomePage(): url = "http://www.renren.com/965187997/profile" #若是已经执行了login函数,则opener自动已经包含相应的cookie值 rsp = opener.open(url) html = rsp.read().decode() with open("rsp.html","w") as f: f.write(html) if __name__ == "__main__": """ 执行完login以后,会获得受权以后的cookie 咱们尝试把cookie打印出来 """ login() print(cookie) for item in cookie: print(type(item)) print(item) for i in dir(item): print(i) getHomePage()
2、源码
Reptitle6_CookieJar.py
https://github.com/ruigege66/PythonReptile/blob/master/Reptitle6_CookieJar.py
2.CSDN:https://blog.csdn.net/weixin_44630050
3.博客园:https://www.cnblogs.com/ruigege0000/
4.欢迎关注微信公众号:傅里叶变换,我的公众号,仅用于学习交流,后台回复”礼包“,获取大数据学习资料