WebMagic学习(五)之爬虫的监控

爬虫的监控。

利用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学习(五)之爬虫的监控_第1张图片
JConsole启动界面

选择启动WebMagic的本地进程,连接后选择“MBean”,点开“WebMagic”,就能看到所有已经监控的Spider信息了!


WebMagic学习(五)之爬虫的监控_第2张图片
JConsole链接中

WebMagic学习(五)之爬虫的监控_第3张图片
属性信息

这里可以选择“操作”,在操作里可以选择启动-start()和终止爬虫-stop(),这会直接调用对应Spider的start()和stop()方法,来达到基本控制的目的。
WebMagic学习(五)之爬虫的监控_第4张图片
操作

你可能感兴趣的:(WebMagic学习(五)之爬虫的监控)