【发布时间】:2013-06-06 20:12:38
【问题描述】:
我正在尝试使用 php cURL 来获取亚马逊网页但得到 HTTP/1.1 503 服务暂时不可用。亚马逊是否阻止 cURL?
http://www.amazon.com/gp/offer-listing/B003B7Q5YY/
<?php
function get_html_content($url) {
// fake user agent
$userAgent = 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.2) Gecko/20070219 Firefox/2.0.0.2';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_USERAGENT, $userAgent);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch,CURLOPT_COOKIEFILE,'cookies.txt');
curl_setopt($ch,CURLOPT_COOKIEJAR,'cookies.txt');
$string = curl_exec($ch);
curl_close($ch);
return $string;
}
echo get_html_content("http://www.amazon.com/gp/offer-listing/B003B7Q5YY");
?>
【问题讨论】:
-
你认为亚马逊如何识别 curl 而不是浏览器?
-
这就是我想要找出的。也许亚马逊会寻找浏览器通常设置的东西,但我没有在 curl 中设置。我尝试了上面的代码,但它把我带到了另一个页面。
-
可以肯定的是,在你的机器和亚马逊之间运行wireshark,捕获数据,通过curl推送相同的东西
-
我使用了 Chrome 的网络检查器并将所有内容作为浏览器放在标题中,但仍然无法正常工作。在这一点上迷路了。
-
查看之前的评论 - 使用 wireshark 来验证完全匹配