Diffbot文档建议设置自定义标头,包括Cookies
,我只需将X-Forward
前缀添加到标头。
例如,我执行以下操作
cookie='SportsDirect_AnonymousUserCurrency=CNY'
user_agent = 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/65.0.3325.181 Chrome/65.0.3325.181 Safari/537.36'
headers = {'X-Forward-User-Agent': user_agent,'X-Forward-Cookie': cookie}
然后我向我的客户提出请求到 URL https://www.sportsdirect.com/adidas-ace-17-1-mens-fg-football-boots-203193?colcode=20319312,我可以在 Wireshark 中看到客户端正确传递了X-Forward
标头:
然而,目标站点仍以美元而不是人民币作出响应。
这与简单的 cURL 形成对比:
curl 'https://www.sportsdirect.com/adidas-ace-17-1-mens-fg-football-boots-203193?colcode=20319312' -H 'Cookie: SportsDirect_AnonymousUserCurrency=CNY' --compressed | grep -A 5 pdpPrice
它显示了与“SportsDirect_AnonymousUserCurrency”一致的价格。
但是,我最终测试了使用 diffbot 向https://webhook.site发出请求,该请求记录了任何请求以及发送到它提供给您的特殊地址的标头。
显然,Diffbot 确实转发了我的标头,所以当 cURL 获得正确的货币时,这令人费解。