• 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)
    
  • 相关阅读:
    单独设置css的class属性
    理解闭包的使用方法
    npm常用命令和总结
    前端调试之服务器
    gulp 报错的处理——个人经验
    工作经验备忘
    c++:虚函数和纯虚函数(转载)
    snmp学习、配置
    sigar学习
    linux安装VSCode
  • 原文地址:https://www.cnblogs.com/lpdeboke/p/12920152.html
Copyright © 2020-2023  润新知