欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2023-09-04 12:06:39
什么是user agentuser agent中文名为用户代理,简称 ua,它是一个特殊字符串头,使得服务器能够识别客户使用的操作系统及版本、cpu 类型、浏览器及版本、浏...

什么是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: *//*"
)
);