使用java的html解析器jsoup和jQuery实现一个自动重复抓取任意网站页面指定元素的web应用

使用java的html解析器jsoup和jQuery实现一个自动重复抓取任意网站页面指定元素的web应用

在线演示  本地下载

如果你曾经开发过内容聚合类网站的话,使用程序动态整合来自不同页面或者网站内容的功能肯定对于你来说非常熟悉。通常使用java的话,我们都会使用到一些HTML的解析,例如,httpparser,最早gbin1.com的整合搜索就是使用httpparser来抓取Google和Baidu的搜索结果,并且整合呈现给搜索用户,这也就是GBin1域名的由来。

那么今天呢,我们介绍另外一个超棒的Java的HTML解析器 - jsoup,这个类库可以帮助大家实时的处理HTML。提供了非常方便的API来提取和处理数据,最重要的它使用类似jQuery的语法来处理DOMCSS等,如果你使用过jQuery的话,就知道它处理DOM的强大方便之处。

主要特性

jsoup实现了WHATWG HTML5 的标准,和现代浏览器解析DOM的方式一样。主要功能:

  • 可以从URL,文件或者字符串中抓取和解析HTML
  • 使用DOM的查询和CSS选择器来查找和解压数据
  • 可以处理HTML的属性,元素和文本
  • 帮助用户处理递交的内容,并且防止XSS攻击
  • 输出干净的HTML

基本上jsoup可以帮助你处理各种的HTML问题,并且帮助你验证非法的tag,创建一个干净的DOM树。

 

自动抓取页面元素 - gbin1.com

我们需要设置抓取的url和页面元素,这里缺省是http://www.gbin1.com/portfolio/lastest.html ,元素为.includeitem,点击开始抓取,可以看到应用抓取如下内容:

抓取任意网站页面指定元素 - gbin1.com

注意这里缺省间隔时间为30秒,30秒后会自动重新抓取内容。

你可以尝试抓取weibo.com, 元素.itemt, 间隔时间10秒,能得到如下内容:

自动重复抓取任意网站页面指定元素 - gbin1.com

你可以看到和微博首页的自动刷新内容一样。

大家可以把这个工具当做页面重复刷新工具,可以帮助你监控某个网站某个部分内容,当然,你也可以使用它来动态刷新你的网站,提高你的alexa排名。

希望大家喜欢这个工具应用,如果你有任何建议和问题,请给我们留言!谢谢!

原文请参考:http://www.gbin1.com/technology/javautilities/20120720jsoupjquerysnatchpage

你可能感兴趣的:(jquery)