鍍金池/ 問答/數(shù)據(jù)分析&挖掘  Java  Python  Linux/ requests的session為什么不攜帶登錄信息了?

requests的session為什么不攜帶登錄信息了?

代碼如下:

import requests
mi_requests = requests.Session()

response_first = mi_requests.get(url=login_url_first,headers=login_header_first)
print response_first.request.headers
print response_first.cookies['JSESSIONID']
response_second = mi_requests.get(url=login_url_second)
print response_second.request.headers

返回信息:

第一個print
{'Accept-Language': 'zh-CN,zh;q=0.9', 'Accept-Encoding': 'gzip, deflate', 'Host': 'e.mi.com', 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.146 Safari/537.36', 'Connection': 'keep-alive', 'Upgrade-Insecure-Requests': '1'}

第二個Print
aaaeKLWkeCfZWhAGOF_iw

第三個Print
{'Connection': 'keep-alive', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'User-Agent': 'python-requests/2.18.4'}

session實例化,為什么不攜帶http頭信息了?

回答
編輯回答
懶豬

response_second = mi_requests.get(url=login_url_second, headers=login_header_first)

2018年1月19日 10:43
編輯回答
六扇門
import requests
mi_requests = requests.Session()
mi_requests.headers = login_header_first

response_first = mi_requests.get(url=login_url_first)
print response_first.request.headers
response_second = mi_requests.get(url=login_url_second)
print response_second.request.headers
2018年4月19日 03:15
編輯回答
嘟尛嘴
mi_requests = requests.Session()

你實例化了Session后沒有設(shè)置mi_requests.headers,而是為第一個request單獨傳了一個headers
兩種headers是會merge,但單獨傳的并不會設(shè)置成session的。
所以統(tǒng)一設(shè)置

mi_requests.headers = login_header_first

如果有額外獨立的headers屬性可以再放到每個request參數(shù)里傳入。

2017年6月25日 08:10