菜鸟要飞

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

2017-04-30  本文已影响604人  万总有点菜

爬虫的监控。

利用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。


JConsole启动界面

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


JConsole链接中
属性信息
这里可以选择“操作”,在操作里可以选择启动-start()和终止爬虫-stop(),这会直接调用对应Spider的start()和stop()方法,来达到基本控制的目的。
操作
上一篇 下一篇

猜你喜欢

热点阅读