我知道这个问题已经在几次处理过,但是没有任何修复似乎与我的特定问题有关。 我试图抓住http://www.lewmar.com中的任何页面,但有些人试图阻止所有尝试。我的最新脚本如下:
function curl_get_contents($url)
{
$ch = curl_init();
$browser_id = "User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0";
$ip = $_SERVER["SERVER_ADDR"];
curl_setopt($ch, CURLOPT_USERAGENT, $browser_id);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_REFERER, $ip);
$headers = array();
$headers[] = 'Cache-Control: max-age=0';
$headers[] = 'Connection: keep-alive';
$headers[] = 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8';
$headers[] = 'Accept-Language: en-US,en;q=0.5';
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$data = curl_exec($ch);
curl_close($ch);
return $data;
}
$url = 'http://www.lewmar.com';
$contents = curl_get_contents($url);
echo strlen($contents);
我试图复制大部分标题,但该网站似乎没有检查“Javascript”#39;兼容性,但仍然无法返回任何内容。
有没有人知道他们如何识别cURL和阻止。
干杯
答案 0 :(得分:0)
当您第一次访问该网站时,它会检查您是否有Cookie。如果不这样做,它会发送一个并发送重定向(到同一页面)。您的代码中没有任何内容可以存储Cookie,因此您最终会围成一圈。卷曲在20次重定向后放弃。解决方案:启用cookie!
curl_setopt($ ch,CURLOPT_COOKIESESSION,true);
curl_setopt($ ch,CURLOPT_COOKIEJAR,'cookies.txt');
curl_setopt($ ch,CURLOPT_COOKIEFILE,'cookies2.txt');