0

网址: https ://www.origin.com/pt-br/store/

我的位置:巴西 (pt-br) 我的虚拟主机位置:美国 (en-us)

我正在使用 cURL 来捕获商店页面,因此我可以收集促销信息并在我的网站上进行设置。

问题是每次我访问商店时,它都会将我“重定向”到 en-us 页面,因为我的主机在美国。但我需要 pt-br 页面。

我试过设置语言环境和时区,但没有任何效果。如果我从我的电脑执行,我会得到 pt-br 页面。关于如何欺骗服务器认为我的网站托管在巴西而不是美国的任何想法?

我正在使用的代码:

$url = 'https://www.origin.com/pt-br/store/';

$curl = curl_init();
curl_setopt($curl, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; rv:1.7.3) Gecko/20041001 Firefox/0.10.1");
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curl, CURLOPT_ENCODING, "");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_AUTOREFERER, true);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 60);
curl_setopt($curl, CURLOPT_TIMEOUT, 60);
curl_setopt($curl, CURLOPT_MAXREDIRS, 10);
curl_setopt($curl, CURLOPT_VERBOSE, 2);
curl_setopt($curl, CURLOPT_HEADER, true);
curl_setopt($curl, CURLOPT_HTTPHEADER, array("Accept-Language: pt-BR;q=0.8,en-US;q=0.6,en;q=0.4"));

curl_setopt($curl, CURLOPT_URL, $url);
$html = curl_exec($curl);

print_r($html);
4

1 回答 1

1

您是否在请求标头中设置了所需的语言?您可以在优先级列表中指定它们,如下所示:

Accept-Language:de-DE,de;q=0.8,en-US;q=0.6,en;q=0.4

在这种情况下,如果可能,服务器会被要求提供德语作为第一选项。作为后备,请求实例(我的浏览器)也对美国英语(或仅英语)感到满意,但优先级较低(0.8 vs. 0.6 vs. 0.4)。所以你应该尝试类似的东西

Accept-Language:pt-BR;q=0.8,en-US;q=0.6,en;q=0.4

可以通过调用来设置

curl_setopt($ch, CURLOPT_HTTPHEADER, array("Accept-Language: pt-BR;q=0.8,en-US;q=0.6,en;q=0.4"));
于 2013-08-27T18:18:50.347 回答