似乎没有授权参数的 POST 请求一直失败



我希望从这个网址获取搜索结果 https://aiwa.ae/keyword/trading
站点具有无限滚动功能,每次滚动都会加载一个带有 POST 请求的页面,该请求在网络检查器中以名称"GetSearchResults"可见。

发出请求应如下所示:

import requests
import json
import pprint
url = 'https://aiwa.ae/api/services/app/search/GetSearchResults'
payload = {"query":"trading","searchField":"","sortByField":"relevance","filters":"","pageIndex":3,"pageSize":20,"params":"origin_region=undefined"}
r = requests.post(url, data=payload)
pprint.pprint(json.loads(r.content))


但这样做的结果是:

{'error': {'code': 0,
           'details': None,
           'message': 'An internal error occurred during your request!',
           'validationErrors': None},
 'result': None,
 'success': False,
 'unAuthorizedRequest': False}


据我所知,应该不需要授权(甚至错误报告也暗示了这一点(。但是,似乎没有任何效果,我也尝试传入标题,但没有运气。

问题取决于您发送请求的方式。您应该使用这样的json=更改data=

import requests
import pprint
url = 'https://aiwa.ae/api/services/app/search/GetSearchResults'
payload = {"query":"trading","searchField":"","sortByField":"relevance","filters":"","pageIndex":3,"pageSize":20,"params":"origin_region=undefined"}
r = requests.post(url, json=payload)
pprint.pprint(r.json())

(PS:为了以JSON格式查看请求,我建议您使用r.json()而不是导入json库并使用json.loads(r.content)(

希望这有帮助!

最新更新