一份关于CURL模拟采集的贴(虽然很…

来源:互联网 发布:天刀官网丐妹捏脸数据 编辑:程序博客网 时间:2024/05/16 02:09

PHP cURL应用实现模拟登录与采集使用方法详解

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

工具

火狐浏览器(FireFox) + Firebug

“工欲善其事,必先利其器。” 在分析案例之前,先让我们学习一下如何利用神器Firebug获取我们必要的信息。
使用F12打开Firebug,我们可以得到如图(一)界面:
body{margin:0;padding:0}一份关于CURL模拟采集的贴(虽然很老,适合刚接触采集的使用)

  1. 箭头图标是“元素选择”工具,单击一次会高亮图标,同时,鼠标在页面内的移动会同时在HTML菜单中选定相应的内容,此时单击内容则表示选定了该元素,图标高亮取消。如图(二)所示:
    body{margin:0;padding:0}一份关于CURL模拟采集的贴(虽然很老,适合刚接触采集的使用)

  2. 控制台
    JS里面的console.log系列函数的打印就是在这里输出。
  3. HTML
    HTML内容,注意这里看到的不一定是采集要解析的内容,采集时候对内容的分析,一律以查看源码(Ctrl+U)为准,这里只是能快速定位元素的结构,然后再选择一个比较特殊的参照,在源码中定位相应的位置。
    比如,你在HTML里面看到一个标签是
    Demo
    ,但是你查看源码时候看到的内容可能是
    Demo
    ,如果你对采集内容按照前者去做正则匹配,那么你会得不到结果。
  4. CSS
    这里是CSS文件内容
  5. 脚本
    这里是Javascript文件内容
  6. DOM
    Dom节点内容
  7. 网络
    每一个请求链接的数据,这里是我们采集要关注和分析的地方,它能够显示每一个请求的参数、请求头、Cookie数据等。在页面提交会刷新的情况下,需要使用保持,使得页面请求内容在刷新后仍然留着控制台中,如图(三)所示:
    body{margin:0;padding:0}一份关于CURL模拟采集的贴(虽然很老,适合刚接触采集的使用)
    另外,火狐还有一款 Tamperdata 扩展也能得到请求数据,必要时可以安装使用。
  8. Cookies
    Cookie数据

图(一)中还看到下面有很多可选的小菜单项,其中保持是我们要关注的,当选择它的时候,即使提交表单刷新了页面,下面内容区域的数据还是会保留,这个对于分析提交数据特别关键。

总结

我们在分析采集请求的时候,主要关心“网络”菜单里的请求数据,必要时候使用“保持”以查看刷新页面的请求数据,请求前可以使用“清除”先清除下面的内容。

案例解析

一、简单的采集

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


  • 代码片段之file_get_contents
原创粉丝点击