PHP Curl 資訊採集 類比瀏覽器採集
今天突然想採集點東西,剛開始還可以,一切正常,可是過了一段時間就什麼也採集不到了,不知道問題出在哪裡了,代碼如下,請教各位?
function getContent($url) {
$url = trim($url);
$content = '';
if (extension_loaded('curl')) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch,CURLOPT_HTTPHEADER,array(
'Accept-Language: zh-cn',
'Connection: Keep-Alive',
'Cache-Control: no-cache'
));
$user_agent ="Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)";
curl_setopt($ch, CURLOPT_USERAGENT, $user_agent);
$content = curl_exec($ch);
curl_close($ch);
} else {
$content = file_get_contents($url);
}
return trim($content);
}//end func getContent();
回複討論(解決方案)
你採集的url是什麼
你採集的url是什麼
比如說這個地址:http://movie.douban.com/subject/10604486/?from=playing
不是可以採集到嗎,你那裡不可以嗎
如果可以試試把這個地址的內容採下來:http://www.tianya.cn/43064769,本來只想要一些搞笑的內容的,後來連頁面都打不開了
不是可以採集到嗎,你那裡不可以嗎
是啊,可能是我採集的太快了吧,感覺有點對不起他們。我用瀏覽器可以正常開啟,但是採集就不行了,現在有什麼辦法可以繼續採集嗎?
其實我感覺還是我的程式不夠完善,不然就不會瀏覽器可以而程式不可以了,幫忙完善下我的程式吧,實在是不知道哪裡不夠完善,請不吝賜教!!!
這裡沒什麼好完善的,可能你調用太頻繁了吧。不知道你是怎麼調用的。
這裡沒什麼好完善的,可能你調用太頻繁了吧。不知道你是怎麼調用的。
我就是直接那地址放進來調用的啊,也沒有太頻繁吧,如果太頻繁了會怎麼樣?
我是使用的迴圈調用的,中間沒有停頓,迴圈不到一百次。現在我已經讓迴圈中間有間歇了,但是現在沒法繼續采了怎麼辦?
不知道,但是肯定會給伺服器帶來很大的壓力。
明顯是被封掉了嘛,一般來講過兩天就能繼續採樣了
你先計算下中間不停大概多久被封,然後設定停止時間。用usleep或者sleep控制。或者用代理ip吧,我現在也在採集,感覺停頓採集效率會低很多。
瀏覽器可以開啟就表示沒有封掉,抓包檢查做完全類比一定行
瀏覽器可以開啟就表示沒有封掉,抓包檢查做完全類比一定行
這個不一定,我前幾天採集百度頁面,瀏覽器可以正常開啟,但是就是採集不到資料,對方估計判斷了是否是類比的抓取。