webjson/spiderman

There is no license information available for the latest version (1.0.8) of this package.

php版的爬虫框架

1.0.8 2017-10-12 02:44 UTC

This package is not auto-updated.

Last update: 2024-04-16 18:08:20 UTC


README

spiderman是一个爬虫框架,php的版本需要5.6以上

总体架构

spiderman由DownloaderPageProcessorSchedulerPipeline四大组件组成,并由Spider将他们组合起来。 这四大组件对应爬虫生命周期中的下载、处理、管理和持久化等功能。

四大组件

  1. Downloader:负责从互联网上下载页面,以便后续处理,spiderman默认使用rmccue/requests作为下载工具。默认的下载器,如果网页设置了编码,但是不是utf-8,将会把网页转换为utf-8
  2. PageProcessor:负责页面解析,以及发现新链接,因为每个站点的页面都不同,需要使用者自己定制这部分,spiderman默认提供了xpath的解析基于(stil/xpath-selector)。
  3. Scheduler:负责管理待抓取的url,以及一些去重工作,默认提供了给予内存的管理,除非要爬取的网站是一个比较大型的网站或者有分布式的需求,否则无需自己定制该组件。
  4. Pipeline:负责处理后的后续处理,比较数据的保存等。

使用定制的Scheduler

内置了几种常见的Scheduler,如果你只是在本地执行规模比较小的爬虫,那么基本无需定制Scheduler。

  1. IScheduler:抽象基类,继承他可以实现自己的功能。
  2. QueueScheduler:基于内存的的队列管理,当站点比较大的时候,比较耗内存,spiderman默认的管理器。
  3. FileCacheQueueScheduler:基于文件的队列管理,可以在关闭程序并下次启动时,从之前抓取到的URL继续抓取,需指定$urlsFile和$cursorFile。
  4. RedisScheduler:使用Redis保存抓取队列,可分布式的抓取,需要安装predis/predis

使用例子请看sample目录