Heim  >  Artikel  >  Backend-Entwicklung  >  php 信息采集 采不到内容?

php 信息采集 采不到内容?

WBOY
WBOYOriginal
2016-06-23 14:14:39842Durchsuche

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吧,我现在也在采集,感觉停顿采集效率会低很多。

浏览器可以打开就表示没有封掉,抓包检查做完全模拟一定行

浏览器可以打开就表示没有封掉,抓包检查做完全模拟一定行
这个不一定,我前几天采集百度页面,浏览器可以正常打开,但是就是采集不到数据,对方估计判断了是否是模拟的抓取。

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn