很多網頁要求登入後,才能檢視對應的資訊,整個流程是:
客戶端 伺服器
玩家登入 返回cookie
獲得cookie後繼續訪問其他頁面 根據cookie查驗身份,返回對應內容
session會話,理解為可以連續請求,先提交data換來cookie,然後可以帶著cookie繼續訪問。
import requests
# 建立一個會話物件
session = requests.session()
# 使用會話物件登入(假設需要登入)
login_url = 'https://example.com/login'
login_data = {'username': 'myuser', 'password': 'mypass'}
session.post(login_url, data=login_data)
# 現在,由於我們使用了會話物件,所以後續的請求會攜帶前面請求中設定的cookies
# 例如,訪問一個需要登入後才能展示的個人資訊頁面
profile_url = 'https://example.com/profile'
response = session.get(profile_url) #>>>> 用session去請求
print(response.text)
# 當你完成所有請求後,可以關閉會話(但這不是強制的,因為Python的垃圾回收機制會處理它)
session.close()