您可以使用python请求库获取请求头吗?
我使用python请求库从一个网站获取所有的头,但是请求似乎只获取响应头,我还需要请求头 有没有办法在请求库中获取请求头,或者我应该使用不同的库来获取请求头 我的代码:您可以使用python请求库获取请求头吗?,python,python-requests,header,Python,Python Requests,Header,我使用python请求库从一个网站获取所有的头,但是请求似乎只获取响应头,我还需要请求头 有没有办法在请求库中获取请求头,或者我应该使用不同的库来获取请求头 我的代码: import requests r = requests.get("https://google.com", allow_redirects = False) for key in r.headers: print(key, ": ", r.headers[key]) 输出: Location : https:/
import requests
r = requests.get("https://google.com", allow_redirects = False)
for key in r.headers:
print(key, ": ", r.headers[key])
输出:
Location : https://www.google.com/
Content-Type : text/html; charset=UTF-8
Date : Wed, 19 Feb 2020 13:08:27 GMT
Expires : Fri, 20 Mar 2020 13:08:27 GMT
Cache-Control : public, max-age=2592000
Server : gws
Content-Length : 220
X-XSS-Protection : 0
X-Frame-Options : SAMEORIGIN
Alt-Svc : quic=":443"; ma=2592000; v="46,43",h3-Q050=":443"; ma=2592000,h3-Q049=":443"; ma=2592000,h3-Q048=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000
响应对象包含一个请求对象,该对象是生成响应的请求 此
requests.models.PreparedRequest
对象可通过响应对象的request
属性访问,其标头位于请求对象的属性headers
中
请参见此示例:
>>> import requests
>>> r = requests.get("http://google.com")
>>> r.request.headers
{'Connection': 'keep-alive', 'User-Agent': 'python-requests/2.22.0', 'Accept': '*/*', 'Accept-Encoding': 'gzip, deflate'}
你不在谷歌的请求中定义请求头吗?请求头是你设置的头。为什么你需要得到它们?我正在抓取网站上的信息,如标题,一些信息,如升级不安全的请求,保存在请求标题内。谢谢你的回答,但这不会得到所有的请求标题。如果您通过chrome查看标题,您将获得更多信息,例如:
权限、方法、路径、模式、接受、接受编码、接受语言、缓存控制、秒取模式、秒取站点、秒取用户、升级不安全请求、用户代理、x-client-data
您无法在chrome中看到python请求库生成的标题,您只能检查chrome生成的请求头。您可以通过启动服务器来验证是否转储了请求头,并将其与返回的dict进行比较,结果是相同的。(是此类服务器的一个示例)感谢您的澄清如果您需要以一种漂亮的方式json.dumps
它们,您将发现它们不是可序列化的,但是,您可以将其转换为dict,如json.dumps(dict(r.request.headers),indent=2)