爬虫的监控。
利用WebMagic 的这个功能,可以查看爬虫的执行情况——已经下载了多少页面、还有多少页面、启动了多少线程等信息。该功能通过JMX 实现,可以使用Jconsole 等JMX 工具查看本地或者远程的爬虫信息。推荐阅读:JMX整理。
注意: 如果你自己定义了Scheduler,那么需要用这个类实现MonitorableScheduler 接口,才能查看“LeftPageCount” 和“TotalPageCount” 这两条信息。
一个例子
添加监控非常简单,获取一个SpiderMonitor 的单例SpiderMonitor.instance(),并将想要监控的Spider 注册进去即可。你可以注册多个Spider 到SpiderMonitor 中。
package com.sima.crawler;
import us.codecraft.webmagic.Spider;
import us.codecraft.webmagic.monitor.SpiderMonitor;
import us.codecraft.webmagic.pipeline.ConsolePipeline;
import javax.management.JMException;
/**
* Created by cfq on 2017/4/30.
*/
public class MonitorTest {
public static void main(String[] args){
Spider spider = Spider.create(new GankRepoPageProcessor())
.addUrl("http://gank.io")
.addPipeline(new ConsolePipeline())
.thread(5);
try {
SpiderMonitor.instance().register(spider);
} catch (JMException e) {
e.printStackTrace();
}
spider.start();
}
}
查看监控信息
命令行输入jconsole(windows下是在DOS下输入jconsole.exe)即可启动JConsole。
选择启动WebMagic的本地进程,连接后选择“MBean”,点开“WebMagic”,就能看到所有已经监控的Spider信息了!
这里可以选择“操作”,在操作里可以选择启动-start()和终止爬虫-stop(),这会直接调用对应Spider的start()和stop()方法,来达到基本控制的目的。