webjson/spiderman

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

php版的爬虫框架

This package's canonical repository appears to be gone and the package has been frozen as a result.

1.0.8 2017-10-12 02:44 UTC

This package is not auto-updated.

Last update: 2025-04-01 22:19:44 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目录