解析file_get_contents模仿浏览器头(user_agent)获取数据
2015-01-24信息快讯网
本篇文章是对file_get_contents模仿浏览器头(user_agent)获取数据进行了详细的分析介绍,需要的朋友参考下
什么是user agent
User Agent中文名为用户代理,简称 UA,它是一个特殊字符串头,使得服务器能够识别客户使用的操作系统及版本、CPU 类型、浏览器及版本、浏览器渲染引擎、浏览器语言、浏览器插件等。
网站可以通过判断不同UA来呈现不同的网站,例如手机访问和PC访问显示不同的页面。
PHP在用file_get_contents函数采集网站时,有时会明明用浏览器可以看,但就是采不到任何内容。
这很有可能是服务器上做了设置,根据 User_agent判断是否为正常的浏览器请求,因为默认PHP的file_get_contents函数是不发送ua的。
如果要采集这样的网站,我们就必须要让PHP模拟浏览器发送UA,欺骗网站返回正常内容。
实现如下:
ini_set('user_agent','Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; 4399Box.560; .NET4.0C; .NET4.0E)');
这是模拟IE8环境下的UA,当然你也可以换成其他的。比如中火狐
也可以这样读取:
$opts = array( 'http'=>array( 'method'=>"GET", 'header'=>"Host: zh.wikipedia.org\r\n" . "Accept-language: zh-cn\r\n" . "User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; 4399Box.560; .NET4.0C; .NET4.0E)" . "Accept: *//*" ) );
PHP中isset()和unset()函数的用法小结
php function用法如何递归及return和echo区别
PHP中ini_set和ini_get函数的用法小结
php中sprintf与printf函数用法区别解析
php的sprintf函数的用法 控制浮点数格式
使用swoole扩展php websocket示例
php中的路径问题与set_include_path使用介绍
分享下页面关键字抓取components.arrow.com站点代码
用Zend Studio+PHPnow+Zend Debugger搭建PHP服务器调试环境步骤
windows下PHP_intl.dll正确配置方法(apache2.2+php5.3.5)
ubuntu12.04使用c编写php扩展模块教程分享
解决file_get_contents无法请求https连接的方法
PHP PDOStatement:bindParam插入数据错误问题分析
php file_get_contents抓取Gzip网页乱码的三种解决方法
PHP imagegrabscreen和imagegrabwindow(截取网站缩略图)的实例代码
单点登录 Ucenter示例分析
PHP数组排序函数合集 以及它们之间的联系分析
基于php常用函数总结(数组,字符串,时间,文件操作)
领悟php接口中interface存在的意义
解析阿里云ubuntu12.04环境下配置Apache+PHP+PHPmyadmin+MYsql
深入file_get_contents与curl函数的详解
执行、获取远程代码返回:file_get_contents 超时处理的问题详解
解析PHP中的file_get_contents获取远程页面乱码的问题
深入file_get_contents函数抓取内容失败的原因分析
解析centos中Apache、php、mysql 默认安装路径
解析func_num_args与func_get_args函数的使用