我想访问JD Sport应用程序中某个产品的JSON页面。为此,我使用了Charles应用程序,它允许我获得以下url和访问此页面所需的所有标头:
https://prod.jdgroupmesh.cloud/stores/jdsportsfr/products/15958093_jdsportsfr
当我想要通过我的下一个python脚本访问JSON页面时,页面返回这个错误:
{'error': {'message': 'API key is not valid. Request authorization failed. Bad MAC'}}我不明白我需要做些什么才能获得JSON页面上的信息。
提前谢谢你
import requests
import json
headers = {
'Host': 'prod.jdgroupmesh.cloud',
'X-NewRelic-ID': 'VQYDUFVWDRABVFVRBwMOV10=',
'Accept': '*/*',
'Connection': 'keep-alive',
'X-API-Key': 'B3B51B56ADC34016A6FEF7F8C337B836',
'mesh-version': 'cart=4',
'MESH-Commerce-Channel': 'iphone-app',
'User-Agent': 'jdsportsfr/6.8.5.2214 (iphone-app; iOS 14.4)',
'Accept-Language': 'fr-fr',
'Accept-Encoding' : 'gzip, deflate, br',
'X-Request-Auth': 'Hawk id="f2188a5b06", mac="V/227yl11UzqV0Wr3Mb0A8SeOVeN94vY1QEXLEucBXc=", ts="1613150841", nonce="8ZZJMN"',
'mesh-version': 'cart=4'
}
params = (
('expand', 'variations,informationBlocks,customisations'),
('channel', 'iphone-app'),
)
stock_json_raw = requests.get('https://prod.jdgroupmesh.cloud/stores/jdsportsfr/products/15958093_jdsportsfr/imageSpinSet',headers=headers, params=params).text.strip()#, headers=headers, params=params).text.strip()
stock_json = json.loads(stock_json_raw)
print(stock_json)发布于 2021-03-01 09:53:16
你必须使用mohawk,一种通过服务器进行身份验证的方法。你需要得到它的网格键。然后,您将能够使用它生成整个x-request-auth标头。
https://stackoverflow.com/questions/66177043
复制相似问题