你應該使用,而不是
function curl_get_content($url, $post = "", $refer = "", $usecookie = false)
{
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
if ($post) {
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $post);
}
if ($refer) {
curl_setopt($curl, CURLOPT_REFERER, $refer);
}
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($curl, CURLOPT_USERAGENT, "Mozilla/6.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.7) Gecko/20050414 Firefox/1.0.3");
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
//curl_setopt($curl, CURLOPT_TIMEOUT_MS, 5000);
if ($usecookie) {
curl_setopt($curl, CURLOPT_COOKIEJAR, $usecookie);
curl_setopt($curl, CURLOPT_COOKIEFILE, $usecookie);
}
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$html = curl_exec($curl);
if (curl_error($curl)) {
echo 'Loi CURL : ' . (curl_error($curl));
}
curl_close($curl);
return $html;
}
因爲file_get_contents
功能發送一個請求嫋嫋不包括header
信息來源或use-agent
信息。 CURL生成一個請求,如瀏覽器請求。和沃爾瑪,亞馬遜,Facebook等...不要扣留您的請求
用於拒絕來自機器人請求的最常見(基本)「檢查」是檢查用戶代理標頭是否與實際瀏覽器相匹配。 //但如果這些網站已經有了這種措施,那麼他們可能不希望你首先刮掉它們的內容。 – CBroe
@CBroe--這不是在這裏發生的事情。服務器只是扼殺了請求。 – pguardiario
@CBroe:很容易測試。如果您以用戶代理的身份發送'我是機器人',您將得到很好的回覆。 – pguardiario