关于php网络爬虫phpspider

关于php网络爬虫phpspider

     前几天,被老板拉去说要我去抓取大众点评某家店的数据,当然被我义正言辞的拒绝了,理由是我不会。。。但我的反抗并没有什么卵用,所以还是乖乖去查资料,因为我是从事php工作的,首先找的就是php的网络爬虫源码,在我的不懈努力下,终于找到phpspider,打开phpspider开发文档首页我就被震惊了,标题《我用爬虫一天时间“偷了”知乎一百万用户,只为证明PHP是世界上最好的语言 》,果然和我预料的一样,php就是世界上最好的语言。废话少说,下面开始学习使用。

      首先看的是提供的一个demo,代码如下:

  

复制代码
$configs = array( 'name' => '糗事百科', 'domains' => array( 'qiushibaike.com', 'www.qiushibaike.com' ), 'scan_urls' => array( 'http://www.qiushibaike.com/' ), 'content_url_regexes' => array( "http://www.qiushibaike.com/article/\d+" ), 'list_url_regexes' => array( "http://www.qiushibaike.com/8hr/page/\d+\?s=\d+" ), 'fields' => array( array( // 抽取内容页的文章内容 'name' => "article_content", 'selector' => "//*[@id='single-next-link']", 'required' => true ), array( // 抽取内容页的文章作者 'name' => "article_author", 'selector' => "//div[contains(@class,'author')]//h2", 'required' => true ), ), ); $spider = new phpspider($configs); $spider->start();
复制代码

每项具体的信息,可以去 https://doc.phpspider.org/demo-start.html 查看,哪里比较详细,这里只说下我走的弯路,

domains是定义采集的域名,只在该域名下采集,
content_url_regexes是采集的内容页,使用chrome查看网页源码,然后使用selector选择器定位,selector使用xpath格式定位参数,当然也可以用css来选择。
list_url_regexes列表页,每个列表页抓取多条content_url_regexes的url循环采集。
还有一些其他参数没有列出来,例如:
复制代码
 'max_try' => 5,
   'export' => array( 'type' => 'db', 'conf' => array( 'host' => 'localhost', 'port' => 3306, 'user' => 'root', 'pass' => 'root', 'name' => 'demo', ), 'table' => '360ky', ),
复制代码

max_try 同时工作的爬虫任务数。
export采集数据存储,有两种格式,一种是写到数据库中,一种是直接生成.csv格式文件。
只要url规则写的对,就可以运行,不用管框架里面的封装。当然,此框架只能在php-cli命令行下运行,所以使用前要先配置环境变量,或者cd到php安装路径运行。
最后成功采集到大众点评某点的一千多条数据。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/112626.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • VS配置PCL“无法解析外部符号”

    VS配置PCL“无法解析外部符号”一开始报错:一般原因是没有包括需要的.lib报错说明可能出现在vtk和pcl_visualization的lib上。在依赖库中添加pcl_visualization.lib或者在.cmake文件中添加visualization重新编译,如下:===========================================================之后,报错只有两条:可知,现在只缺少vtk相关的lib。本人没有找到vtkLODActor和vtkShpe…

    2022年6月28日
    22
  • zabbix集成onealert验证报错:create media type failed! error message[通俗易懂]

    zabbix集成onealert验证报错:create media type failed! error message[通俗易懂]zabbix集成onealert验证报错:createmediatypefailed!errormessage一、报错详细信息[root@host-10-101-16-202bin]#bashinstall.sh1841b33f-1c97-1ae5-7dc2-e5a411b9eabfstarttocreateconfigfile…Zabbix管理地址:h…

    2022年5月9日
    60
  • MYSQL8.0以上版本正确修改ROOT密码[通俗易懂]

    MYSQL8.0以上版本正确修改ROOT密码[通俗易懂]部署环境:安装版本redhatCent7.0MYSQL版本8.0.2.0成功部署完毕后出现故障情况:1.正常启动MYSQL服务后,敲Linux中root账户和密码进入不去。2.从/etc/my.cnf配置文件中加入skip-grant-table后正常登陆,但是不能创建用户等多操作总结来说:想进去mysql后不能操作多指令,操作多指令又不能进去mysql,死…

    2022年5月6日
    95
  • webpack(8)vue组件化开发的演变过程「建议收藏」

    webpack(8)vue组件化开发的演变过程「建议收藏」前言真实项目开发过程中,我们都是使用组件化的去开发vue的项目,但是组件化的思想又是如何来的呢?下面就从开始讲解演变过程演变过程1.0一般情况下vue都是单页面开发,所以项目中只会有一个inde

    2022年7月31日
    7
  • 二阶有源滤波器设计

    二阶有源滤波器设计1引入为什么要用有源二阶滤波器?(1)从有源来说对于无源二阶低通滤波器:其幅頻方程为:我们从中可以看出其通带截止频率为有其品质因子为0.372。我们根据上图得到二阶无源低通滤波器的品质因子只有0.372,如果希望Q大于0.5,就需要在ω=ωo附近增大幅度响应。实现这个目的的一种方法就是增加一个可控的正反馈控制量,这种反馈仅仅在ω=ωo附近奏效,参见下…

    2022年5月4日
    56
  • 风控决策引擎经验

    风控决策引擎经验转载自https://mp.weixin.qq.com/s/LDcquVOTlCKJluyWG3AGAA一套完整的风控体系,在风控中,少不了决策引擎,今天就浅谈一下风控决策引擎。一、优先级风控决策引擎是一堆风控规则的集合,通过不同的分支、层层规则的递进关系进行运算。而既然是组合的概念,则在这些规则中,以什么样的顺序与优先级执行便额外重要。风控系统的作用在于识别绝对风控与标识相对风险…

    2022年6月15日
    50

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号