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)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM