解析file_get_contents模仿浏览器头(user_agent)获取数据

yipeiwu_com5年前PHP代码库

什么是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取整函数ceil,floo,round的用法及介绍

ceil  是向上进位得到一个值的函数;floor 是舍掉小数位得到一个值的函数;round 是用来四舍五入的函数 ceil定义和用法:ceil() 函数向上舍入为最接近的整数...

PHP浮点数精度问题汇总

一、PHP浮点数精度损失问题 先看下面这段代码: 复制代码 代码如下: $f = 0.57; echo intval($f * 100);  //56 结果可能有点出乎你的意...

php简单实现数组分页的方法

本文实例讲述了php简单实现数组分页的方法。分享给大家供大家参考,具体如下: 首先学东西  要多看手册 用php自带的函数  可以解决一些难解的问题 <&#...

利用Ffmpeg获得flv视频缩略图和视频时间的代码

利用Ffmpeg获得flv视频缩略图和视频时间的代码

问题描述;获得flv视频的缩略图和视频时间长度 谷歌了半天发现可以使用Ffmpeg获得视频的一些信息,先介绍一下FFMEPG 这里简单说一下:FFmpeg是用于录制、转换和流化音频和...

PHPExcel合并与拆分单元格的方法

本文实例讲述了PHPExcel合并与拆分单元格的方法。分享给大家供大家参考,具体如下: $objPHPExcel; $filepath="c:\temp.xlsx"; try {...