全方面的采集神器(一下file_get_contents函数可以获取远程链接数据的方法)

优采云 发布时间: 2021-10-31 21:15

  全方面的采集神器(一下file_get_contents函数可以获取远程链接数据的方法)

  对于做过数据采集的人来说,curl一定不陌生。PHP中虽然有file_get_contents函数可以获取远程链接数据,但是可控性太差。对于各种复杂的情况,file_get_contents 似乎有点无能为力。因此,本文将向您介绍采集 神器cURL 的使用。

  给大家补充一下file_get_contents函数获取远程链接数据的方法。

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

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

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

  经过一些傻测试,我发现file_get_contents获取远程文件内容并不比curl慢。在某些文件较少的情况下,它可能比curl扩展快得多,所以我重新编写了代码。

  工具

  火狐浏览器 (FireFox) + Firebug

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

  使用F12打开Firebug,我们可以得到如图所示的界面(一):

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

  Firebug 视图元素

  

  2、控制面板

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

  3、HTML

  HTML内容,注意这里看到的不一定是采集要解析的内容。采集 时对内容的分析将始终基于查看源代码(Ctrl+U)。这里只是为了快速定位元素。然后选择一个比较特殊的引用,在源码中定位到对应的位置。

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

  演示

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

  演示

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

  4、CSS

  这是CSS文件的内容

  5、脚本

  这是Javascript文件的内容

  6、DOM

  Dom 节点内容

  7、网络

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

  

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

  8、饼干

  饼干数据

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

  总结

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

  案例分析

  一、简单采集

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

  代码片段 file_get_contents

<p>

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线