你在浏览器看到的这种带冒号的请求头,是因为浏览器与服务器之间使用的是HTTP2协议。走不走HTTP2是可选的,即客户端不支持HTTP2时就不会使用HTTP2协议进行交互。所以,你只需要考虑按照正常的https请求来交互即可。 之所以会得到405,是因为服务端有安全策略检测的。我初步分析,应该是与cookie中的信息有关。
回复 @北国之秋秋 : 尽量模拟正常的用户请求。有两点需要注意,1. 请求的User-Agent要模拟为正常浏览器的;2. 要携带cookie信息。
哥,我想知道该如何解决啊??谢谢!
这里我给你一个实例,你看下:
# coding=utf-8
import requests
def test():
head = {
"User-Agent" : "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_3) AppleWebKit/537.36"
}
payload = {
"key": "小米"
}
s = requests.Session()
s.get("https://www.qichacha.com/", headers = head)
s.headers.update(head)
r = s.get("https://www.qichacha.com/search", params=payload)
print(r)
print(r.text)
输出: