Jsoup解析Html之常用方法

时间:2022-11-01 09:12:29

Jsoup解析Html之常用方法

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

接下来简要介绍Jsoup使用中常用到的一些方法:


1. 解析一个HTML字符串:

 String html = "<html><head><title>First parse</title></head>"   + "<body><p>Parsed HTML into a doc.</p></body></html>"; 
Document doc = Jsoup.parse(html);

作用:解析一个HTML字符串,生成相应的Document对象
其解析器能够尽最大可能从你提供的HTML文档来创见一个干净的解析结果,无论HTML的格式是否完整。比如它可以处理:
1、没有关闭的标签
2、隐式标签
3、创建可靠的文档结构


2. 解析一个URL网站:

Document doc = Jsoup.connect("http://blog.csdn.net/gsycwh") 
.data("query", "Java") // 请求参数
.userAgent("I ’ m jsoup") // 设置 User-Agent
.cookie("auth", "token") // 设置 cookie
.timeout(3000) // 设置连接超时时间3秒
.post(); // 使用 POST 方法访问 URL

作用:解析一个URL链接,生成所需的Document对象重点内容
Jsoup.connect(String url)方法: 说明 connect(String url) 方法创建一个新的 Connection, 和 get() 取得和解析一个HTML文件。如果从该URL获取HTML时发生错误,便会抛出 IOException,应适当处理。 Connection 接口还提供一个方法链来解决特殊请求


3. 解析一个HTML文件:

File input = new File("/tmp/input.html");  
Document doc = Jsoup.parse(input, "UTF-8", "http://www.jb51.net/");

作用:解析一个现成的HTML文件,生成相应的Document对象
当你想解析本机硬盘上一个HTML文件时,可以使用静态 Jsoup.parse(File in, String charsetName, String baseUri) 方法。 这个方法用来加载和解析一个HTML文件。如在加载文件的时候发生错误,将抛出IOException,应作适当处理。 baseUri 参数用于解决文件中URLs是相对路径的问题。如果不需要可以传入一个空的字符串。 另外还有一个方法parse(File in, String charsetName) ,它使用文件的路径做为 baseUri。 这个方法适用于如果被解析文件位于网站的本地文件系统,且相关链接也指向该文件系统。


Jsoup查找对应元素的集合elements:
getElementById(String id) 通过id获得元素
getElementsByTag(String tag) 通过标签获得元素
getElementsByClass(String className) 通过class获得元素
getElementsByAttribute(String key) 通过属性获得元素


Jsoup处理元素数据的方法:
attr(String key) 获得元素的数据
attr(String key, String value) 设置元素数据
attributes() 获得所有属性
id(), className() classNames() 得到id class的值
text()得到文本值
text(String value) 设置文本值
html() 获取html
html(String value)设置html
outerHtml() 获得内部html
data()获得数据内容
tag() 得到tag 和 tagName() 得到tagname


Jsoup操作Html的方法:
append(String html), prepend(String html)
appendText(String text), prependText(String text)
appendElement(String tagName)
prependElement(String3tagName)
html(String value)

具体的实练可以看我的上一篇基于Jsoup搜索引擎的博客



发表人:梦想的边缘