Jsoup

Jsoup简介

Jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。

Jsoup的主要功能如下:

1. 从一个URL,文件或字符串中解析HTML;

2. 使用DOM或CSS选择器来查找、取出数据;

3. 可操作HTML元素、属性、文本。

解析HTML文档或者一个body片段

当我们想解析一个html文件的时候,可以使用静态Jsoup.parse(String html) 方法或 Jsoup.parse(String html, String baseUri)类进行解析。例如:

注:解析的不能是空字符串,其中包含(至少) 一个head和一个body元素。又或者我们想解析的不是一个完整的html,只是一个body片段,这时候我们可以使用Jsoup.parseBodyFragment(String html)方法。例如:

从一个URL加载一个Document对象

假如你想从一个网站获取和解析一个HTML文档,并查找其中的相关数据。

你可是使用 Jsoup.connect(String url)方法。例如:

connect(String url) 方法创建一个新的 Connection, 和 get() 取得和解析一个HTML文件。如果从该URL获取HTML时发生错误,便会抛出 IOException,应适当处理。Connection 接口还提供一个方法链来解决特殊请求,具体如下:

根据一个文件加载Document对象

在本机硬盘上有一个HTML文件,需要对它进行解析从中抽取数据或进行修改。

可以使用静态 Jsoup.parse(File in, String charsetName, String baseUri) 方法。例如:

注:baseUri 参数用于解决文件中URLs是相对路径的问题。如果不需要可以传入一个空的字符串。

用dom方法来遍历一个Document对象

假如你有一个HTML文档要从中提取数据,并了解这个HTML文档的结构。

将HTML解析成一个Document之后,就可以使用类似于DOM的方法进行操作。示例代码:

Elements这个对象提供了一系列类似于DOM的方法来查找元素,抽取并处理其中的数据。具体如下:

使用选择器语法来查找元素

可以使用Element.select(String selector) 和 Elements.select(String selector) 方法实现:

下面分享一个相关的实例:在工作的时候,有一个主站网站,我需要获取它所有子站的 url。因为之前没有接触过jsoup,刚开始也不知道怎么获取,现在学会了,就把这个技巧分享给大家共同学习,代码如下:

运行结果如下:

这些子站的数据就是我需要的。

本文属于原创,如要转载,请标注原作者,版权归本公众号所有。如果你喜欢我们写的文章请关注【Java资源社区】,欢迎大家继续关注本公众号的技术博文。如果您觉得这篇文章对你有所帮助的话,不妨点个赞哦,您的支持就是我们坚持原创的动力~~

  • 发表于:
  • 原文链接:http://kuaibao.qq.com/s/20180112G02MAF00?refer=cp_1026

同媒体快讯

  • Servlet开篇

    2018-10-16

相关快讯

扫码关注云+社区