第一次接触jsoup还是在处理收货地址的时候,当时在写一个下单流程,需要省市区id以及详细门牌号等等,因此同事介绍了jsoup,闲来无事,在此闲扯一番!
1.我们来看下,什么是jsoup,先来看看官方文档是怎么说的:
jsoup: Java HTML Parser,jsoup is a Java library for working with real-world HTML. It provides a very convenient API for extracting and manipulating data, using the best of DOM, CSS, and jquery-like methods.
简单来说就是从HTML页面获取数据。
2.jsoup能处理什么呢?
(1)没有关闭的标签 (比如: <p>Lorem <p>Ipsum parses to <p>Lorem</p> <p>Ipsum</p>)
(2)隐式标签 (比如. 它可以自动将 <td>Table data</td>包装成<table><tr><td>?)
(3)创建可靠的文档结构(html标签包含head 和 body,在head只出现恰当的元素)
3.先来看看实际操作吧
(1)从一个URL加载一个Document
首先我们新建一个java project,用jsoup获取百度title,结构如下图所示,下载jsoup包,如:jsoup-1.10.2.jar,将包引入jsoupdemo工程中
(2)从文件中加载HTML,并用jsoup解析
在该工程下新建一个package,名为resources,将百度首页源码保存为一个HTML文件,我们读取该HTML文件,并获取输入框的属性为id的值kw.
(3)使用DOM方法来遍历一个文档,获取name属性和value值
在resources下新建input.html
通过以上操作,大家可能对jsoup有了初步的认识,我们来简单总结下jsoup语法
<1>查找元素
getElementById(String id)
getElementsByTag(String tag)
getElementsByClass(String className)
getElementsByAttribute(String key) (and related methods)
<2>元素数据
attr(String key)获取属性attr(String key, String value)设置属性
attributes()获取所有属性
id(), className() and classNames()
text()获取文本内容text(String value) 设置文本内容
html()获取元素内HTMLhtml(String value)设置元素内的HTML内容
outerHtml()获取元素外HTML内容
data()获取数据内容(例如:script和style标签)
tag() and tagName()
<3>操作HTML和文本
append(String html), prepend(String html)
appendText(String text), prependText(String text)
appendElement(String tagName), prependElement(String tagName)
html(String value)
以上就是jsoup简单的操作,作者本身也是第一次接触,欢迎大家指导学习。