java爬虫gecco监控来了,不再裸奔
爬虫为什么要监控
gecco是一个十分简单易用的java开源爬虫框架,同时也一个款拥有很好扩展性的框架,目前已经有:
结合spring的插件gecco-spring
结合htmlunit的插件gecco-htmlunit
结合redis的插件gecco-redis
在开发爬虫时,由于要对很多网站和链接进行抓取,并对抓取下来的网站进行内容的抽取。大量的链接下载和内容抽取如果没有监控,很难发现问题。特别是对于主题爬虫,需要抽取页面的具体内容,如果网站改版务必要能尽快的发现并修正,gecco爬虫框架在完成了基本的框架和必要的插件的实现后,将重点放在了监控的开发上。
对扩展开放,对修改关闭的开闭原则一致是gecco框架的基本设计原则。gecco爬虫的监控模块同样基于该原则,基于jmx协议,使用aop模式。
监控指标
爬虫基本信息
- 刷新基本信息:exec/com.geccocrawler.gecco:name=gecco/monitor
-
读取基本信息:read/com.geccocrawler.gecco:name=gecco
{ Interval: 5000,//抓取间隔时间ms StartTime: "2016-03-20 20:34:11",//抓取开始时间 ThreadCount: 1,//爬虫线程数量 StarUrlCount: 8//初始url数量 }
下载监控
- 获取当前正在抓取的所有域名:exec/com.geccocrawler.gecco:name=downloader/hosts
- 获取某个域名的下载监控信息:exec/com.geccocrawler.gecco:name=downloader/statistics/xx.xx.com
-
读取下载监控信息:read/com.geccocrawler.gecco:name=downloader
Statistics: "{ "exception":8,//该域名抓取异常的数量,主要是超时等异常 "serverError":0,//该域名返回500,404等错误信息的数量 "success":3263//成功抓取数量 }", Host: "xx.xx.com"//域名
内容抽取监控
- 刷新内容抽取监控信息:exec/com.geccocrawler.gecco:name=render/refresh
-
获取内容抽取监控信息:read/com.geccocrawler.gecco:name=render
Statistics: "{ "xx.xx.com":0,//域名xx.xx.com的网站内容抽取的异常数量 "yy.yy.com":0//域名yy.yy.com的网站内容抽取的异常数量 }"
jmxutils和jolokia
jmxutils
gecco的监控使用了jmxutils这个开源的mbean注解框架。在以前的开发工作中要么就用原生的动态mbean,要么是使用spring的jmx注解框架。原生的动态mbean写起来太繁琐,spring的jmx注解框架使用起来还是很方便的,但是现在spring感觉有些重。jmxutils这个框架很轻量,使用方法可以参考https://github.com/martint/jmxutils。
jolokia
Jolokia是一个利用JSON通过Http实现JMX远程管理的开源项目。具有快速、简单等特点。除了支持基本的JMX操作之外,它还提供一些独特的特性来增强JMX远程管理如:批量请求,细粒度安全策略等。也就是说jmx的mbean可以通过http来访问不需要在启动java时配置那么多参数。只需要新增一个servlet:
<servlet>
<servlet-name>jolokia-agent</servlet-name>
<servlet-class>org.jolokia.http.AgentServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>jolokia-agent</servlet-name>
<url-pattern>/jmx/*</url-pattern>
</servlet-mapping>
这样应用中的mbean就能轻松控制和访问。jolokia还提供了java客户端和js客户端来访问mbean,具体的使用方法和权限控制可以查看jolokia的官方文档https://jolokia.org/reference/html/index.html
相关推荐
}demo地址:教您使用java爬虫gecco抓取JD全部商品信息(一)教您使用java爬虫gecco抓取JD全部商品信息(二)教您使用java爬虫gecco抓取JD全部商品信息(三)集成Htmlunit下载页面爬虫的监控一个完整的例子,分页处理...
Gecco是一款用java语言开发的轻量化的易用的网络爬虫。Gecco整合了jsoup、httpclient、fastjson、spring、htmlunit、redission等优秀框架,让您只需要配置一些jquery风格的选择器就能很快的写出一个爬虫。Gecco框架...
本项目是基于Java开发的网络爬虫Gecco设计源码,主要使用Java进行开发。项目共包含164个文件,其中Java源代码文件153个,Git忽略配置文件2个,Markdown文档文件2个,YAML配置文件1个,项目许可证文件1个,JPG图片...
### Java爬虫教程及工具应用 #### 一、Java爬虫概述 在互联网时代,数据成为了一种重要的资源。爬虫技术就是一种自动化获取网络数据的有效手段。Java作为一种广泛使用的编程语言,在爬虫开发领域也占据着重要的...
Java爬虫Gecco工具是Java领域中用于网页抓取的一个简单易用的框架,它借鉴了jQuery的选择器语法,使得开发者能方便地定位到需要抓取的网页元素。本文将详细解析如何使用Gecco工具抓取新闻实例,包括配置依赖、编写...
Java爬虫是一个强大的工具,用于自动化地从互联网上获取数据,尤其在大数据分析、网站监控和内容抓取等领域中有着广泛的应用。在这个Java爬虫实例中,我们将深入探讨其核心概念和技术,帮助你理解如何使用Java来编写...
Java爬虫技术是一种在互联网上自动获取网页信息的程序,它是大数据分析、搜索引擎优化和内容监控等领域的基础工具。在这个“Java爬虫详细完整源码实例”中,我们可以深入理解如何利用Java语言来构建一个功能完备的...
JAVA爬虫实现自动登录淘宝 JAVA爬虫是指使用JAVA编程语言来实现网页爬虫的技术。爬虫是指模拟用户的行为来自动获取网络资源的程序。JAVA爬虫可以用来自动登录淘宝网,实现自动登录淘宝网的功能。 在本例中,我们...
java爬虫需要的jar包。httpclient,jsoup等等。直接导入项目使用 java爬虫需要的jar包。httpclient,jsoup等等。直接导入项目使用 java爬虫需要的jar包。httpclient,jsoup等等。直接导入项目使用java爬虫需要的jar包...
这两部分是构建Java爬虫的重要组件,下面将详细介绍这两个库以及爬虫开发的基础知识。 首先,让我们来理解什么是网络爬虫。网络爬虫,又称网页蜘蛛或数据抓取程序,是一种自动浏览互联网并抓取网页内容的程序。它...
Java爬虫是一种使用Java编程语言实现的网络爬虫技术,主要用于自动抓取互联网上的信息,如文本、图片、文档等。在这个DEMO中,我们将会探讨如何使用Java来实现一个基础的网页爬虫,以及涉及的相关知识点。 首先,让...
8. **实战应用**:Java爬虫在数据挖掘、市场分析、舆情监控等领域有广泛应用。通过爬虫获取的数据可以用于产品推荐、用户行为分析、竞争情报收集等多种业务场景。 在学习和实践Java爬虫的过程中,需要不断学习新的...
Java爬虫技术是一种利用编程语言(在这个例子中是Java)自动抓取互联网上信息的工具。这个"Java爬虫代码示例.rar"压缩包显然包含了用于教学目的的Java爬虫程序,适合初学者学习和理解爬虫的基本原理与实现方法。下面...
基于Java爬虫的驾考小程序源码+项目说明+数据库(答案爬取).zip基于Java爬虫的驾考小程序源码+项目说明+数据库(答案爬取).zip基于Java爬虫的驾考小程序源码+项目说明+数据库(答案爬取).zip基于Java爬虫的驾考小...
"Amazon.rar_amazon 爬_java爬虫"这个标题表明这是一个使用Java编程语言编写的爬虫程序,其目标是抓取亚马逊(Amazon)网站上的数据,特别是与衣服相关的图片和资料。"rar"是压缩文件格式,意味着这个程序已经被打包...
Java爬虫经常用于数据抓取、搜索引擎索引构建、市场数据分析、竞争对手监控等场景。 2. Java语言: 文档中提到的“Java”是编写爬虫的主要编程语言,Java以其跨平台、对象导向、安全性高等特点,在企业级应用开发中...
反爬虫应对: 由于爬虫的存在,一些网站采取了反爬虫措施,如验证码、IP封锁等。爬虫工程师需要设计相应的策略来应对这些挑战。 爬虫在各个领域都有广泛的应用,包括搜索引擎索引、数据挖掘、价格监测、新闻聚合等...
百度贴吧是中国最大的网络社区之一,拥有丰富的用户讨论内容,因此这样的爬虫对于数据分析、舆情监控或研究用户行为具有一定的价值。 【描述】:“一个简单的百度贴吧java爬虫,可以爬取用户内容,用户名和楼层” ...
Java爬虫项目实战源码是学习和掌握网络爬虫技术的一种实用方式,它涵盖了从数据抓取、数据处理到数据存储等一系列步骤。本项目实战源码提供了完整的代码实现,可以帮助开发者深入理解Java爬虫的工作原理,并能快速...