php curl抓取网页指定内容(一下file_get_contents函数可以获取远程链接数据的方法)

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

  php curl抓取网页指定内容(一下file_get_contents函数可以获取远程链接数据的方法)

  对于做过数据采集的人来说,cURL肯定会很熟悉。 PHP中虽然有file_get_contents函数可以获取远程链接数据,但是可控性太差。对于各种复杂情况采集场景,file_get_contents 显得有些力不从心。因此,本文将向您介绍采集神器cURL。

  首先添加file_get_contents函数获取远程链接数据的方法。

  这段代码会直接使用curl来显示文件内容,但是问题来了,因为curl是PHP的一个扩展,有些主机为了安全会使用curl,在本地调试的时候curl也是关闭的宁外PHP,所以会出现错误,所以这段代码不可取,所以云落给他重写了

  修改后的版本是对curl扩展做一个判断,看curl扩展是否在服务器上打开。如果打开,则直接显示文件,如果未打开,则显示提示文本。

  虽然问题已解决,但还有一个问题。我只显示一段文字。我不做大事,为什么要写这么多代码? ?

  经过一些傻测试,我发现file_get_contents获取远程文件内容的速度并不比curl慢,而且在一些文件较少的情况下可能比curl扩展快很多,所以我又重新写了一遍代码

  工具

  火狐 + 萤火虫

  “工人要想做好自己的工作,就必须磨砺他们的工具。”在分析案例之前,让我们学习一下如何使用神器Firebug来获取我们需要的信息。

  使用F12打开Firebug,我们可以得到图片(一)interface:

  1、箭头图标是“元素选择”工具。单击一次以突出显示该图标。同时,鼠标在页面内的移动会同时选中HTML菜单中的相应内容。此时点击内容表示该元素被选中,图标高亮取消。如图(二):

  萤火虫视图元素

  

  2、控制面板

  这里输出的是JS中console.log系列函数的打印

  3、HTML

  HTML 内容,注意这里看到的不一定是采集 想要解析的。 采集分析内容的时候,总是以查看源码(Ctrl+U)为标准,这里只列出可以快速定位的元素结构,然后选择一个比较特殊的引用,在源码中定位到对应的位置.

  例如,如果您在 HTML 中看到一个标签

  演示

  ,但是你查看源代码看到的可能是

  演示

  如果使用前者对采集内容进行正则匹配,则不会得到任何结果。

  4、CSS

  这里是CSS文件的内容

  5、Script

  这里是Javascript文件的内容

  6、DOM

  Dom 节点内容

  7、网络

  每个请求链接的数据,这里是我们采集要重点分析的。它可以显示每个请求的参数、请求头、cookie数据等。在页面提交会刷新的情况下,需要使用hold,这样刷新后页面请求的内容保留在控制台中,如图(三):

  

  此外,Firefox 还有一个 Tamper 数据扩展,也可以获取请求数据,需要时可以安装使用。

  8、Cookies

  Cookie 数据

  图中(一),你也可以看到下面有很多可选的小菜单项,其中keep是我们要注意的。选择时,即使页面被刷新提交表单,下方内容区的数据仍会保留,这对于分析提交的数据尤为关键。

  总结

  我们在分析采集请求的时候,主要关心的是“Network”菜单中的请求数据。如有必要,使用“Keep”查看刷新页面的请求数据。您可以在请求前使用“清除”清除以下内容。 .

  案例分析

  一、简的采集

  这里简单的采集指的是采集单页GET请求。如此简单,即使通过file_get_contents函数也能轻松获取页面返回结果。

  File_get_contents 代码片段

<p>

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线