jim*_*iat 10 python session python-requests
我可能误解了这个requests.session对象。
headers ={'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.28 Safari/537.36'}
s = requests.Session()
r = s.get('https://www.barchart.com/', headers = headers)
print(r.status_code)
Run Code Online (Sandbox Code Playgroud)
200这工作正常并按预期返回。
但是,以下返回403并显示第一个请求的标头尚未像使用浏览器手动保存一样保存在会话中:
headers ={'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.28 Safari/537.36'}
s = requests.Session()
r = s.get('https://www.barchart.com/', headers = headers)
r = s.get('https://www.barchart.com/futures/quotes/CLQ20')
print(r.status_code)
print(s.headers)
Run Code Online (Sandbox Code Playgroud)
我认为有一种方法可以使用会话对象将 1 个请求复合到另一个请求中的标头、cookie 等...我错了吗?
And*_*ely 18
您可以使用session.headers( doc ) 属性来指定随每个请求发送的标头:
import requests
headers ={'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.28 Safari/537.36'}
s = requests.session()
s.headers = headers # <-- set default headers here
r = s.get('https://www.barchart.com/')
print(r.status_code)
print(s.headers)
print('-' * 80)
r = s.get('https://www.barchart.com/futures/quotes/CLQ20')
print(r.status_code)
print(s.headers)
s.close()
Run Code Online (Sandbox Code Playgroud)
印刷:
200
{'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.28 Safari/537.36'}
--------------------------------------------------------------------------------
200
{'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.28 Safari/537.36'}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16828 次 |
| 最近记录: |