您的位置:首页 > Web前端 > JavaScript

Jsoup解析Html之常用方法

2016-09-11 10:33 274 查看

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搜索引擎的博客

发表人:梦想的边缘
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: