php curl抓取网页内容(在php中经常用到的采集函数就是file_get_contents和curl函数)

优采云 发布时间: 2021-09-14 19:01

  php curl抓取网页内容(在php中经常用到的采集函数就是file_get_contents和curl函数)

  php中经常用到的采集函数是file_get_contents和curl函数。 PHP在使用file_get_contents函数采集网站时会返回false,但是在浏览器中打开连接地址就可以看到网页的内容了。

  这是因为在服务器上进行了设置。 User_agent是通过php $_SERVER["HTTP_USER_AGENT"]获取来判断是否是正常的浏览器请求,因为php的file_get_contents函数默认不发送User_agent。

  User Agent 的中文名称是 User Agent,简称 UA。它是一个特殊的字符串头,使服务器能够识别客户端使用的操作系统和版本、CPU 类型、浏览器和版本、浏览器渲染引擎和浏览器语言。 、浏览器插件等

  我测试通过,待抓取页面的输出变量$_SERVER["HTTP_USER_AGENT"]为空。这样$_SERVER["HTTP_USER_AGENT"]的值就是在被爬取的服务器上通过php获取的。如果为空,则会跳转到404错误页面,从而无法抓取页面信息。

  有两种方法可以解决这个问题

  1、设置php.ini配置文件,找到要启用的user_agent,去掉前面的分号;

  2、通过php的ini_set()方法设置用户代理。

  示例如下

  ini_set('user_agent','Mozilla/4.0 (兼容; MSIE 6.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322)');

  echo file_get_contents('你想要采集的页面url');

  通过以上两种方法,可以让$_SERVER["HTTP_USER_AGENT"]的值不为空,就可以成功采集获取到你想要的内容了。

  注意:设置user_agent时,最好使用浏览器版本或者spider,比如我上面设置的就是火狐,这样采集服务器才能正常通过认证。因为服务器不会屏蔽蜘蛛或浏览器的版本,这个问题大家要注意了,哈哈。如果他屏蔽了这个,就会阻止蜘蛛抓取页面,也无法识别用户使用的浏览器。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线