解决方案:解决php无法通过file_get_contents或curl采集页面内容

优采云 发布时间: 2022-12-15 20:18

  解决方案:解决php无法通过file_get_contents或curl采集页面内容

  让我们了解什么是用户代理,用户代理

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

  我通过了测试并输出了要抓取的页面上变量 $_SERVER[“HTTP_USER_AGENT”] 为空的输出。这样,$_SERVER [“HTTP_USER_AGENT”] 的值是通过爬网服务器上的 PHP 获取的,如果为空,则会跳转到 404 错误页面,这样页面信息就无法抓取。

  

  我们来谈谈上面好友nginx服务器能采集的原因,估计nginx在编译的时候开启了UA代理。你可以测试一下。

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

  1.设置PHP.ini配置文件,找到打开user_agent,去掉前面的分号;

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

  

  示例如下

  ini_set('user_agent','Mozilla/4.0(兼容;微星6.0;视窗NT 5.2;SV1; .NET CLR1.1.4322)');

  回显file_get_contents(“您要采集的页面的网址”);

  自动采集网站内容 可怕:爬虫到底难在哪里?

  爬虫的本质是采集数据。通俗地说,就是在App或浏览器中,通过模拟人的操作步骤,自动获取数据。本身没有什么难度,只是伪造一个HTTP请求。

  但是有些公司会为你设置采集障碍,大公司也有专门的安全团队来防止采集。

  可以看到从事安全的程序员或者黑客的平均技术水平明显好于一般写代码的学生。

  对于一般的新闻资讯网站,逻辑很简单,大家的新闻也都传出去了。采集 没有障碍,只要你的频率不是太高,对方的程序员懒得管。

  对于需要登录权限的网站,您需要小心。当对方设置登录权限时,您必须保持登录状态。用户的自然流量总是有规律的。如果一个用户在一分钟内浏览 100 个网页,您将不会被阻止。你为什么要保留它?

  

  爬虫程序员:好的频率太高了,我会多申请几个号,减少频率和频次

  网站程序员:这个IP地址有点奇怪,请求这么规律,在NGINX配置下,限制访问频率

  爬虫程序员:我建一个IP代理池,每隔一段时间随机换一个IP。国内有那么多IP代理

  网站程序员:用户登录太简单了,上次极限测试,认机器自动登录

  爬虫程序员:……github上有破解极速体验的代码python吗?硒

  如同大自然的竞争,两个素不相识的程序员的技术进化就这样开始了

  采集程序的本质是获取数据,而爬虫程序员的目标是以尽可能低的代价获取数据采集,

  

  反爬虫程序员的目标是尽可能增加爬虫来我的采集数据的成本

  以下是爬虫从业者的分类

  初学者:requets获取请求数据bs或xpath分析

  中级:获取数据的请求或scrapy请求,伪造user-agent,更改agent ip和多线程。bs4,xpath,正则背诵。

  进阶:分布式爬虫,各种熟练requests scrapy,vps拨号换ip,代理ip,vpn换ip各种场景,能解密js加密,破解无限调试器,懂nlp和深度学习训练破解字母数字验证码。

  超强:精通ast语法,掌握各种hook,能在极短时间内破解js加密,精通深度学习,熟悉并破解定位滑块图片识别数字和字母的验证码,精通android逆向工程。研究了多种智能提取网页内容的算法,如视觉分割、NLP结合DOM重要内容提取等。

  达到超等境界,其实是靠个人的努力和天赋。如果android是把一切都反过来,你起码要有十年的行业经验。除了深度学习、js安全、算法,都是不能满足的东西。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线