1. 程式人生 > 實用技巧 >python之requests.session()使用

python之requests.session()使用

背景:使用requests.session會話物件先登入至豆瓣網,再進入“我的豆瓣”。

首先說一下,為什麼要進行會話保持的操作?

requests庫的session會話物件可以跨請求保持某些引數。

說白了,就是比如你使用session成功的登入了某個網站,則在再次使用該session物件對該網站的其他網頁都會預設使用該session之前使用的cookie等引數。

準備工作

1、先在瀏覽器正常登入豆瓣,並進入“我的豆瓣”,且通過Fiddler工具抓取相應的url和請求體;

2、檢視頁面的編碼格式,避免出現中文亂碼。

''' 
  通過Fiddler抓取豆瓣登入、我的主頁網址
  url1: 豆瓣登入網址
  url2: 我的主頁網址
'''

import
requests url1 = "https://accounts.douban.com/j/mobile/login/basic" url2 = "https://www.douban.com/people/xxxx/" # 通過Fiddler抓取請求頭 header = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101 Firefox/68.0" } # 通過Fiddler抓取請求體(沒想到抓到的密碼竟然未加密?) payload = {
'ck': "", 'name': "xxxxx", 'password': 'xxxx', 'remember': 'false', 'ticket': '', } # 初始化requests.sessionh()會話物件 session = requests.session() response1 = session.get(url=url1, headers=header, verify=False) response2 = session.post(url=url1, headers=header, data=payload, verify=False)
# print(response2.text) if response2.status_code == 200: # verify=False:關閉requests證書驗證 response3 = session.get(url=url2, headers=header, verify=False) # 在"我的主頁"中右鍵"檢視元素",發現<head>中charset='utf-8',所以設定寫入檔案的編碼格式,否則亂碼 with open("douban.html", 'w', encoding = "utf-8") as file: file.write(response3.text)

douban.html檔案的部分內容:

參考:https://blog.csdn.net/weixin_42575020/article/details/95179840