本帖最后由 xiachao2008 于 2012-04-18 23:57:56 编辑

解决方案 »

  1.   

    我用这个采集的  function getHtml($url){
    if(function_exists('file_get_contents')){
    $file_contents = file_get_contents($url);
    }
    else{
    $ch = curl_init();
    $timeout = 5;
    curl_setopt ($ch, CURLOPT_URL, $url);
    curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
    $file_contents = curl_exec($ch);
    curl_close($ch);
    }
    return $file_contents;
    }
      

  2.   

    "后面追加的文字"能在源码里看到吗? 就是说只是页面加载中的停顿,还是那些文字是js另外loading进来的
    在firefox里用firebug看一下到底怎么回事 
      

  3.   

    现在的问题是,
    至从我采集信息不全开始。
    我用浏览器(chrome)打开原网址,信息都少一半。只有在另外的电脑上打开才能完全显示。
      

  4.   

    有可能这个网站作了防采集处理,同一IP如果访问过频,针对此IP就启动防采集了,这也符合你说的刚开始可以完整采集,时间一长就不行的情况。不过这个还好了,有的网站变态到每次1K字节的间隔输出呢
      

  5.   

    一般只要换个IP(或者通过一些代理来轮流采集),并清一下COOKIES就可以了。否则还要测试这个网站是根据什么规则来判断采集的。
      

  6.   

    防止采集:
    1:用户登录才能访问网站内容
    2:利用脚本语言做分页(隐藏分页)
    3:防盗链办法(只许可通过本站页面连接查看,如:Request.ServerVariables(“HTTP_REFERER“) )
    4:全flash、图片或者pdf来浮现网站内容
    5:网站随机接纳不同模版
    6:接纳动态不规则的html标签
    一旦要同时搜索引擎爬虫和采集器,这是很让人无奈的工作,因为搜索引擎第一步就是采集目标网页内容,这跟采集器原理同样,所以很多防止采集的方法同时也阻碍了搜索引擎对网站的收录,无奈,是吧?以上10条建议虽然不能百分之百防采集,可是几种方法一起适用已经拒绝了一大部分采集器了。