0

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 获得正确的货币时,这令人费解。

4

1 回答 1

1

无法用你的 curl 重现,也不能那样工作。要使其与这两种方法一起使用,您需要添加另一个 cookie 值,因为它们的末端有重定向。完整的标题是:

ChosenSite=www; SportsDirect_AnonymousUserCurrency=CNY;
于 2018-04-19T11:22:42.743 回答