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资源社区】,欢迎大家继续关注本公众号的技术博文。如果您觉得这篇文章对你有所帮助的话,不妨点个赞哦,您的支持就是我们坚持原创的动力~~
领取专属 10元无门槛券
私享最新 技术干货