Java语言环境下网页信息抓取工具集合

2013-08-27
  • 999
  • 0

如果你有需求从互联网上下载特定的网页,或者从网页中解析出特定的信息,那么这篇文章将对您有所帮助。下面我列举一下Java语言环境中能够用于网页下载或信息提取的工具,以下工具各有特点。

Web-harvest 是一款开源的Java网页信息提取工具,主要是使用XQuery,XPath,,正则表达式,以及javaScript等脚本语言从网页中提取字段的信息,其提取信息的灵活性和准确性主要来自于XPath和XQuery。Web-harvest提供了一个可以在JRE环境中可执行的jar文件,运行该文件可以执行简单的XML类型的配置文件,该配置文件就是您所定义的网页访问和解析规则了。您可以很简单的在执行程序中使用xml配置文件,同时他也可以通过java api做更复杂的开发。它支持使用代理服务器。性能较差,比较适合做小型简单的程序。

HttpClient是Apache的一个子项目,支持了所有的http协议,可以管理cookie信息。其强项在于访问网页,而不具备网页解析能力。有两个比较实用的功能就是指定代理服务器,如果您拥有多块网卡和多个网路的话,您还可以指定网络出口。

Jsoup是一个非常便捷的网页访问和解析工具,它能用很简单的代码来访问网页,并且通过一种叫做css的格式来提取网页的信息。非常的简单易学,而且处理效率也较高。另外它可以只用来解析传入的html字符串,因此是非常容易和其他工具结合来开发程序的。

SWT下的WebBrowser,首先SWT是Eclipse下的图形化开发包,其中的WebBrowser可以让您调用系统中的浏览器,比如IE或者Firefox,相当于您把浏览器嵌入到了您的java程序之中。其最大的优点就是可以完全模拟浏览器,所以它就可以在执行上述几种工具无法执行的javascript和css,并交由系统的浏览器来管理您的cookie。当然WebBrowser是异步的,您需要通过监听complete事件来确定网页是否加载和绘制完成。并且在competed事件中进行后续的处理。他有一个很亮点的功能就是允许你在其中执行你传入的Javascipt。

上述是以往工作中实际使用过的工具,可以选取各自的优点结合使用,希望对您有所帮助。