本系列文章,针对Webmagic 0.6.1版本
一个普通爬虫启动代码
public static void main(String[] args) {
Spider.create(new GithubRepoPageProcessor())
从https:github.com/code4craft开始抓
.addUrl("https://github.com/code4craft")
//设置Scheduler,使用Redis来管理URL队列
.setScheduler(new RedisScheduler("localhost"))
//设置Pipeline,将结果以json方式保存到文件
.addPipeline(new JsonFilePipeline("D:\\data\\webmagic"))
//开启5个线程同时执行
.thread(5)
//启动爬虫
.run();
}
1、spider可配置插拔组件:
Downloader 提供自定义的Downloader,默认为HttpClientDownloader
Pipeline 提供自定义的Pipeline,可以配置多个,多个Pipeline链式处理结果。默认为ConsolePipeline
Scheduler 提供自定义的调度器,默认为QueueScheduler
PageProcessor 页面处理组件,开发者爬虫的实现
ExecutorService 可以用于提供自己实现的线程池来监控,默认为Fixed ExecutorService
SpiderListener 页面状态监听器,提供每个页面成功和错误的回调。可配置多个。
其中有:WebMagic四大组件:Pipeline,Scheduler,Downloader和PageProcesser 。这和Python中的Scrapy的理念是一致的。但是Scrapy还有一些中间件的概念,从结构图中便可以看出区别
2、状态变量:
stat 0,初始化;1,运行中;2,已停止