zoukankan      html  css  js  c++  java
  • 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)
    
  • 相关阅读:
    我的后端开发书架2015 2.0版
    Java根据字节数据判断文件类型
    基于lucene的案例开发:查询语句创建PackQuery
    Web 前沿——HTML5 Form Data 对象的使用
    基于HTML5的可预览多图片Ajax上传
    【面试】Spring问答Top 25
    【劳动节江南白衣Calvin 】我的后端开发书架2015
    【转载】Java 动态代理
    使用iframe给页面的localStorage扩容
    js中的||和&&使用技巧
  • 原文地址:https://www.cnblogs.com/lpdeboke/p/12920152.html
Copyright © 2011-2022 走看看