查看: 199|回复: 0

Python爬虫连载6-cookie深入使用实例化实现自动登录

[复制链接]
发表于 2020-2-18 10:28:07 | 显示全部楼层 |阅读模式
一、使用cookie登录
1.直接把cookie复制下去,然后手动放到哀求头
2.http模块包罗一些关于cookie的模块,通过他们我们可以自动使用cookie
(1)cookieJar
管理存储cookie,向传出的http哀求添加cookie;cookie存储在内存中,CookieJar实例回收后cookie将消失;
(2)FileCookieJar(filename,delayload=None,policy=Nnone)
使用文件管理cookie;filename是保存cookie的文件
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)用来处理复杂哀求
  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字段
  1. from urllib import request,parsefrom 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":"[email protected]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()
复制代码



二、源码
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.欢迎关注微信公众号:傅里叶变换,个人公众号,仅用于学习交流,背景回复”礼包“,获取大数据学习资料

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?用户注册

x

相关技术服务需求,请联系管理员和客服QQ:2753533861或QQ:619920289
您需要登录后才可以回帖 登录 | 用户注册

本版积分规则

帖子推荐:
客服咨询

QQ:2753533861

服务时间 9:00-22:00

快速回复 返回顶部 返回列表