实现PHP爬虫小技巧
现在学习爬虫的小伙伴很多,但是奈何实力不均匀,这也是造就了不同的人编写不同的代码,样式各种各样。造成这样的结果不仅仅是因为个人技术原因,也有是因为选择的语言不同导致差异化。
对于新手来说用PHP来写爬虫非常友好,虽然不太稳定,并且组件库相对来说有点少,但是总体来说写起来还是简单的。
curl 实现方法
直接采用 PHP curl来抓取数据。
socket方法
采用最原始的socket方法,这里有一个教程,很完善,也是采用了socket方式。
file_get_contents 方法
file_get_contents 方法 ,这个最直接,但是有的虚拟机可能会有限制。
我用的是云主机,没有任何限制,就直接用curl方法了。
爬取网页步骤
设置种子url,一般都是站点的域名,通过这个主页一步一步抓取。
抓取种子url,分析这个页面,获取所有的相关的url,根据是否抓取外站策略来判断url是否入队列,这里队列实现就比较多样化了,可以redis ,也可以数据库,我就直接数据库保存了。
处理url,判断是否是需要抓取的网页。
如果是要抓取的网页,处理入库。
如果不是,就更新队列。
这里重点说一下第一个:
一个用PHP实现的轻量级爬虫,只提供了爬虫最核心的调度功能,所以整体实现非常精简,使用也非常简单并且易于上手。
特点
轻量级,内核简单非常易于上手。
基于Redis的调度插件支持分布式以及断点抓取。
易扩展易定制,可以随时按照自己的需求定制调度插件。