可能很多程序员会说:爬虫我只认Python。小编还是觉得php是世界上最好的语言,没有什么做不了的。
一、爬虫框架:Beanbun
Beabbun是一个简单可扩展的爬虫框架,支持分布式,支持守护进程模式和普通模式,守护进程模式基于Workerman,下载器基于Guzzle。
特点:
1、支持守护进程和普通两种模式(守护进程模式只支持Linux服务器)
2、默认使用guzzle进行爬取
3、支持分布式,内存,redis,自定义URL过滤,广度优先和深度优先等
4、爬取网页分为多步,每步均支持自定义动作
5、灵活的扩展机制,可方便的为框架制作插件:自定义队列、自定义爬取方式...
二、采集工具:QueryList
QueryList是一个基于phpQuery的PHP通用列表采集类,得益于phpQuery,让使用QueryList几乎没有任何学习成本,只要会css3选择器就可以轻松使用QueryList了,它让PHP做采集像JQuery选择元素一样简单。
1、只有一个核心的API,静态方法Query
2、用JQuery选择器来选择页面元素
3、自带过滤功能,可过滤掉无用内容
4、支持无限层级嵌套采集
5、支持扩展,通过扩展可以实现复杂的http操作、多线程批量采集、模拟登陆采集等功能
3、PHP采集类:Snoopy
Snoopy是一个PHP类,用来模拟浏览器的功能,可以获取网页内容,发送表单。
1、抓取网页的内容:fetch;抓取网页文本内容:fetchtext;抓取网页的链接,表单:fetchlinks,fetchfrom
2、支持代理主机,支持基本的用户名、密码验证,支持设置user_agent,referer,cookies和header content
3、支持浏览器重定向,并能控制重定向深度
4、能把网页中的链接扩展成高质量的url
5、提交数据并获取返回值
4、爬虫库:Goutte
Goutte是一个抓取网站数据的php库。它提供了一个优雅的API,这使的从远程页面上选择特定元素变得简单。
其实最好用的还是适合自己的,根据自己的情况自行扩展。