• requests.session()会话保持


    首先说一下,为什么要进行会话保持的操作?

    requests库的session会话对象可以跨请求保持某些参数,说白了,就是比如你使用session成功的登录了某个网站,则在再次使用该session对象请求该网站的其他网页都会默认使用该session之前使用的cookie等参数。尤其是在保持登陆状态时运用的最多。在某些网站抓取,或者app抓取时,有的是强制性的需要登陆的,有的是不登陆返回的数据就是假的或者说是不完整的数据,那我们不可能去做到每一次请求都要去登陆一下怎么办,就需要用到保持会话的功能了,我们可以只登陆一次,然后保持这种状态去做其他的或者更多的请求。

    其次,我们该如何使用会话保持?举一个事例来说明一下:

    #requests.session():维持会话,可以让我们在跨请求时保存某些参数
     
     
    import requests
     
    #实例化session
    session = requests.session()
     
    #目标url
    url = 'https://www.douban.com/accounts/login'
     
    form_data = {
        'source': 'index_nav',
        'form_email': 'xxx',
        'form_password': 'xxx',
        'captcha-solution': 'stamp',
        'captcha-id': 'b3dssX515MsmNaklBX8uh5Ab:en'
    }
     
    #设置请求头
    req_header = {
        'User-Agent':'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36',
    }
     
    #使用session发起请求
    response = session.post(url,headers=req_header,data=form_data)
     
    if response.status_code == 200:
     
        #访问个人主页:
        url = 'https://www.douban.com/people/175417123/'
     
        response = session.get(url,headers = req_header)
     
        if response.status_code == 200:
     
            with open('douban3.html','w') as file:
     
                file.write(response.text)
    
  • 相关阅读:
    Qt计算器开发(三):执行效果及项目总结
    [HNOI2019]校园旅行
    How to fix nuget Unrecognized license type MIT when pack
    How to fix nuget Unrecognized license type MIT when pack
    git 通过 SublimeMerge 处理冲突
    git 通过 SublimeMerge 处理冲突
    git 上传当前分支
    git 上传当前分支
    gif 格式
    gif 格式
  • 原文地址:https://www.cnblogs.com/lpdeboke/p/12920152.html
Copyright © 2020-2023  润新知