打印所有传入的XHR请求python

时间:2019-11-05 06:51:39

标签: python

我想从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)

编辑: 我需要在代码中添加任何参数吗?

1 个答案:

答案 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)