我想从URL获取所有XHR请求。
当我检查站点并进入网络-> XHR时,我看到多个XHR链接,一旦加载完成,我希望将它们全部获取。我想我需要硒和要求的结合。
我在SO here上找到了以下代码,但没有任何输出,并给了我一个错误。
我在寻找其他问题,但是似乎没有很多人遇到这个问题。
错误:
File "C:\ProgramData\Anaconda3\lib\json\decoder.py", line 355, in raw_decode
raise JSONDecodeError("Expecting value", s, err.value) from None
JSONDecodeError: Expecting value
我的代码:
#### Gets all XHRs ####
import requests
url= "https://forsikringsguiden.dk/#!/"
headers = {"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36",
"X-Requested-With" : "XMLHttpRequest",
"Host" : "forsikringsguiden.dk",
"Referer" : "https://forsikringsguiden.dk/"}
response = requests.get(url, headers=headers)
xhr = response.json()
print(xhr)
编辑: 我需要在代码中添加任何参数吗?
答案 0 :(得分:1)
您需要与站点维护者进行协调。他们将能够说出要发送JSON响应需要发送哪些标头或参数。或者,甚至他们根本不支持JSON。
您的原始代码在给出实际返回JSON的URL的情况下有效:
import requests
url= "http://api.plos.org/search?q=title:DNA"
headers = {"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36",
"X-Requested-With" : "XMLHttpRequest"}
response = requests.get(url, headers=headers)
xhr = response.json()
print(xhr)