同样的地址,我通过file_get_contents采集页面,抓包发现,先收到一个302转向,然后采集到的数据成了转向后的页面,而直接通过浏览器访问就不会转向。
这一般是因为什么原因呢?
这一般是因为什么原因呢?
解决方案 »
- 如何让PHP 支持使用dl()函数
- 放上外网服务器问题
- 分页代码/帮我看看/纠结我有段时间了!
- window下安装xampp环境下执行netpayclient.php报错
- mysql数据库移植问题,求解!
- 用php如何获得当前目录的文件数?
- 听说php可以做手机网站是不是真的(不解)??
- Warning: Smarty error: unable to read resource: "index.htm" in E:\客户网站\include\Smarty\Smarty.class.php on line 1082
- "之前有未闭合的引号"错误莫名奇妙
- pdf问题急急(在线)
- [请教问题] php 异常处理类
- PHP如何调用ASP.NET的webservice
file_get_contents
echo '-->';
类似于301,但新的URL应该被视为临时性的替代,而不是永久性的。
浏览器访问网页的时候会先向其服务器发送浏览器的HEADER,而PHP里面的file_get_contents 是不会发送浏览器标识的,所以应该是被采集的页面的服务器或者所在程序脚本设置了简单的防止采集的过滤。
DEDECMS他的采集类有一个模拟浏览器HTTP 下载的源码类,通过它的这个类,可以直接想该页面服务器端发送浏览器header ,当然也可以发送 搜索引擎的header。
CURL 不行,也是没有header的。