同样的地址,我通过file_get_contents采集页面,抓包发现,先收到一个302转向,然后采集到的数据成了转向后的页面,而直接通过浏览器访问就不会转向。
这一般是因为什么原因呢?

解决方案 »

  1.   

    echo '<!--';
    file_get_contents
    echo '-->';
      

  2.   

    302 Found
    类似于301,但新的URL应该被视为临时性的替代,而不是永久性的。
    浏览器访问网页的时候会先向其服务器发送浏览器的HEADER,而PHP里面的file_get_contents 是不会发送浏览器标识的,所以应该是被采集的页面的服务器或者所在程序脚本设置了简单的防止采集的过滤。
    DEDECMS他的采集类有一个模拟浏览器HTTP 下载的源码类,通过它的这个类,可以直接想该页面服务器端发送浏览器header ,当然也可以发送 搜索引擎的header。
    CURL 不行,也是没有header的。