返回介绍

4.6 爬虫的监控

发布于 2019-11-28 05:27:14 字数 2024 浏览 995 评论 0 收藏 0

爬虫的监控是 0.5.0 新增的功能。利用这个功能,你可以查看爬虫的执行情况——已经下载了多少页面、还有多少页面、启动了多少线程等信息。该功能通过 JMX 实现,你可以使用 Jconsole 等 JMX 工具查看本地或者远程的爬虫信息。

如果你完全不会 JMX 也没关系,因为它的使用相对简单,本章会比较详细的讲解使用方法。如果要弄明白其中原理,你可能需要一些 JMX 的知识,推荐阅读: JMX 整理 。我很多部分也对这篇文章进行了参考。

注意: 如果你自己定义了 Scheduler,那么需要用这个类实现 MonitorableScheduler 接口,才能查看“LeftPageCount”和“TotalPageCount”这两条信息。

4.6.1 为项目添加监控

添加监控非常简单,获取一个 SpiderMonitor 的单例 SpiderMonitor.instance() ,并将你想要监控的 Spider 注册进去即可。你可以注册多个 Spider 到 SpiderMonitor 中。

public class MonitorExample {

    public static void main(String[] args) throws Exception {

        Spider oschinaSpider = Spider.create(new OschinaBlogPageProcessor())
                .addUrl("http://my.oschina.net/flashsword/blog");
        Spider githubSpider = Spider.create(new GithubRepoPageProcessor())
                .addUrl("https://github.com/code4craft");

        SpiderMonitor.instance().register(oschinaSpider);
        SpiderMonitor.instance().register(githubSpider);
        oschinaSpider.start();
        githubSpider.start();
    }
}

4.6.2 查看监控信息

WebMagic 的监控使用 JMX 提供控制,你可以使用任何支持 JMX 的客户端来进行连接。我们这里以 JDK 自带的 JConsole 为例。我们首先启动 WebMagic 的一个 Spider,并添加监控代码。然后我们通过 JConsole 来进行查看。

我们按照 4.6.1 的例子启动程序,然后在命令行输入 jconsole(windows 下是在 DOS 下输入 jconsole.exe)即可启动 JConsole。

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

这里我们也可以选择“操作”,在操作里可以选择启动-start() 和终止爬虫-stop(),这会直接调用对应 Spider 的 start() 和 stop() 方法,来达到基本控制的目的。

4.6.3 扩展监控接口

除了已有的一些监控信息,如果你有更多的信息需要监控,也可以通过扩展的方式来解决。你可以通过继承 SpiderStatusMXBean 来实现扩展,具体例子可以看这里: 定制扩展 demo

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文