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

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.欢迎关注微信公众号:傅里叶变换,我的公众号,仅用于学习交流,后台回复”礼包“,获取大数据学习资料

 

相关文章
相关标签/搜索