`

jsoup网页解析

阅读更多

从第三方网站上抓取一张页面,分析其中的内容,然后转换为自己的格式并持久化,这就是网络爬虫的操作步骤。目前,对网页的抓取及解析也在互联网项目中有较为广泛的应用,下面简单谈谈一些网页解析工具的使用方法。

网页的爬取及解析,应该利用一现有的工具或框架去实现,而这些框架的选择,至少要考虑下面的一些因素:

1、应该具有一定的兼容性,比如:原始页面中的一些语法错误、未关闭标签等,应该能够被正确解析;

2、应该可以方便地查找、过滤页面元素;

3、应该要以对找到的元素进行操作,比如:修改,删除等,当然也可以加入新的元素。

我主要说两个常用的网页解析工具,一个是htmlParser,这个框架出来得比较早,并且有比较广泛的应用,官方站点在http://htmlparser.sourceforge.net/,下面是一段示例代码:

Parser parser = new Parser(str_url);

parser.setEncoding("utf-8");

NodeList imageNodeList = contentNodeList.extractAllNodesThatMatch(new TagNameFilter("img"), true);

上面将得到页面中的所有图片链接。其中的extractAllNodes方法有很多种实现,可以按元素类型、包含的属性等等条件进行过滤,我以前的一些项目中就曾使用这种方法来做,也用得十分的恼火,让人头疼的地方主要是:

1、容错性差,目标页面有错误,解析起来就得不到正确的结果,为此,当时都研究过firefox的解析包,但发现十分复杂,放弃了(注:如果每个页面都通过xhtml标准检查,那么用dom4j中的xpath就可以解决网页解析的问题了,呵呵)。

2、要仔细分析目标网页,针对目标网页的页面元素层级关系,编写相应的解析代码,写出的代码非常冗长(主要是元素查询、过滤很麻烦),可维护性不高。一旦目标网站页面格式调整,再次调整代码,修改解析代码非常痛苦。

3、页面的修改、重组都不方便。

用HtmlParser的经历可以说是比较痛苦,但在当时的情况下,HtmlParser是最好的一个java开源网页解析器,也只有将应着用了。同时也期待着新的框架问世。

直到有一天,发现了jsoup,以前困扰过我的问题终于得到了解决,并且解决得很彻底,是到了跟HtmlParser说再见的时候了。jsoup官网地址在http://jsoup.org/,整个jar包135kb,非常小巧,而且不依赖其它包,够强悍。下面贴出一段示例代码(具体使用官网上有Cookbook,另外chinaos版主也写了一篇jsoup的使用文档,自己去google一下吧):

Document doc = Jsoup.connect(str_url).get();

Elements es = doc.select("#results .trans-wrapper h2 span");

System.out.println(es.text());

jsoup具有页面纠错功能,对于一般的标签未封闭,未结束等错误可以智能纠正,这点对网页解析来说意义重大。其次,页面元素查找、定位十分的方便,它完全支持jQuery的元素查找方式,并且几乎所有的api方法,都和jQuery api中的方法一模一样,我们知道,jQuery之所以可以被如此广泛使用,和它简洁强大的页面元素定位及简单的api是分不开的,jsoup的这种做法可以说是非常明智的。

我对jQuery非常的熟悉,jsoup和jQuery又如此的相似,因此jsoup后可以说是拿来即用,感觉十分的亲切、自然。用了jsoup后,你会发现,实现同样功能的代码,jsoup代码量会比Htmlparser少很多很多,并且可读性非常的强,可维护性自然提高。

做网页解析的朋友们,赶紧”鸟枪换炮“吧。

分享到:
评论

相关推荐

    Jsoup解析网页工具类

    **Jsoup:强大的Java网页解析库** Jsoup是一款优秀的开源Java库,专为网页解析而设计,具有简单易用的API,使得从HTML文档中提取结构化数据变得轻而易举。它支持HTML5和HTML4标准,允许开发者在处理网页内容时,...

    jsoupAPI解析html

    **jsoup API解析HTML** jsoup是一个非常强大的Java库,专为处理真实世界的HTML而设计。它提供了方便的API,用于提取和操作数据,使用...无论是网页抓取、数据提取还是内容修改,jsoup都能提供高效且安全的解决方案。

    Android使用Jsoup技术解析HTML

    Jsoup提供了一种简单、安全且有效的方法来解析和操作HTML文档,使得开发者能够轻松地从网页中提取结构化数据。 ### 1. Jsoup的基本概念 Jsoup的核心功能是解析HTML文档,并将其转化为一个DOM(Document Object ...

    使用Jsoup解析html网页

    相比于标准的DOM解析器,Jsoup更注重实际的网页解析需求,它的错误容忍度更高,能够处理一些不规范的HTML代码。 总结来说,Jsoup是Java开发者处理HTML时的强大工具,无论是在数据抓取、网页验证还是内容过滤等方面...

    使用Jsoup库解析HTML、XML或URL链接中的DOM节点

    在压缩包文件"JsoupDemo"和"Jsoup"中,可能包含了使用Jsoup进行DOM解析的示例代码。这些代码通常会展示如何连接到URL,选择元素,提取数据,以及进行一些基本的DOM操作。通过阅读和运行这些示例,你可以更深入地了解...

    Jsoup 解析网页实例

    这个只是一个java源文件,用于学习Jsoup

    jsoup网页内容分析

    JSoup是一个Java库,设计用于处理真实世界的HTML,它提供了非常方便的API,用于抓取和解析网页内容。在HTMLParser不再更新的情况下,JSoup是一个理想的选择,因为它能够有效地处理HTML的复杂性和不一致性。 ### ...

    jsoup网页爬虫小案例

    **jsoup网页爬虫小案例** 在这个案例中,我们将探讨如何使用Java的Jsoup库来实现一个简单的网页爬虫。Jsoup是一个强大的库,专为处理真实世界的HTML而设计,它提供了非常方便的方法来解析、查找和修改HTML文档。这...

    利用jsoup解析网页

    本文将深入探讨jsoup的核心功能及其在网页解析中的应用。 首先,我们需要理解jsoup的基本概念。它基于Java的标准库javax.swing.text.html.parser,但提供了更友好的接口。jsoup能够解析HTML文档,并将其转换为一个...

    一个用jsoup框架解析html的项目

    如果需要进一步分析这些数据,可以将它们加载到内存,然后使用JSoup进行解析和处理。 总之,JSoup是一个强大的工具,对于任何需要处理HTML的Java项目来说,它都是一个优秀的选择。结合多线程技术,可以高效地处理...

    Jsoup解析html+xml

    在现代Web开发中,数据抓取和网页解析是常见需求,Jsoup凭借其高效且易用的特性,成为开发者们首选的工具之一。本文将深入探讨Jsoup在解析HTML和XML时的关键知识点。 一、Jsoup的基本概念与安装 Jsoup是由Jonas ...

    httpClient采集jsoup解析

    例如,以下代码展示了如何用Jsoup解析一个网页并获取标题: ```java Document doc = Jsoup.connect("http://example.com").get(); Element title = doc.select("title").first(); System.out.println(title.text())...

    jsoup 网页信息 抓取 选择器

    **jsoup库详解** jsoup是一款非常强大的Java库,它专为处理HTML文档而设计,提供了...此外,jsoup还提供了多种高级功能,满足了多样化的网页解析需求,使得开发者可以更专注于业务逻辑,而不是底层的HTML解析细节。

    Jsoup操作解析Html文件

    Jsoup是一款非常强大的Java库,专门用于处理和解析HTML文档。它提供了丰富的API,使得开发者可以轻松地在代码中操作HTML,实现对网页内容的抓取、解析和修改。Jsoup不仅能够帮助我们提取结构化数据,还能够模拟...

    jsoup HTML解析器 v1.17.2.zip

    在讲解Web开发、数据挖掘或Java编程的课程中,jsoup是一个很好的教学工具,可以让学生亲手实践网页抓取和解析,加深理论与实践的结合。 **系统软件工具** 作为一款系统软件工具,jsoup可以集成到其他系统中,提供...

    Jsoup库文件;Jsoup解析Java包

    此外,Jsoup还提供了链接处理能力,可以解析页面上的链接,包括相对链接和绝对链接,这对于网页爬虫和数据抓取来说非常有用。 XML解析方面,虽然Jsoup主要设计用于HTML处理,但它也具备解析XML文档的能力。XML与...

    jsoup网页分析jar包

    **jsoup网页分析jar包** 是一款用于Java的开源库,专门设计用于处理HTML文档,进行网页抓取和解析。它的全名是Jsoup,它提供了丰富的API来简化HTML的处理,使开发者能够轻松地提取数据,操作DOM,以及执行CSS和...

    Jsoup解析html的示例

    在Android开发中,Jsoup尤其有用,因为它能够帮助开发者从网页中提取结构化数据,这对于网络爬虫或者任何需要从网页获取信息的应用来说是至关重要的。 **一、Jsoup的基本用法** 1. **引入依赖** 在Android项目中...

    jsoup java解析html

    在现代Web开发中,尤其是在网页抓取、数据提取或自动化测试等领域,JSoup扮演着至关重要的角色。 ### 1. 解析HTML文档 JSoup能够解析来自网络或本地文件系统的HTML文档,将其转化为一个可操作的`org.jsoup.nodes....

    用Jsoup解析html的所有jar包

    在Java开发中,如果你需要从网页上提取数据或者进行Web抓取,Jsoup是一个理想的选择。这个压缩包文件“用Jsoup解析html的所有jar包”显然是包含了使用Jsoup进行HTML解析所需的全部依赖。 首先,我们需要了解Jsoup的...

Global site tag (gtag.js) - Google Analytics