Jsoup是一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。
Jsoup类是任何Jsoup程序的入口点,并将提供从各种来源加载和解析HTML文档的方法。
static Connection connect(String url) | 创建并返回URL的连接。 |
---|---|
static Document parse(File in, String charsetName) | 将指定的字符集文件解析成文档。 |
static Document parse(String html) | 将给定的html代码解析成文档。 |
static String clean(String bodyHtml, Whitelist whitelist) | 从输入HTML返回安全的HTML,通过解析输入HTML并通过允许的标签和属性的白名单进行过滤。 |
该类表示通过Jsoup库加载HTML文档。可以使用此类执行适用于整个HTML文档的操作。
HTML元素是由标签名称,属性和子节点组成。 使用Element类,您可以提取数据,遍历节点和操作HTML。
<dependency> <groupId>org.jsoup</groupId> <artifactId>jsoup</artifactId> <version>1.10.2</version> </dependency>
Document document = Jsoup.connect("http://www.yiibai.com").get(); Document document = Jsoup.parse( new File( "D:/temp/index.html" ) , "utf-8" );``` String html = "<html><head><title>First</title></head><body><p>Parsed</p></body></html>"; Document document = Jsoup.parse(html);
// 解析文件,获取doc对象 Document doc = Jsoup.parse(new File("C:\\Users\\myqxin\\Desktop\\set.html"), "utf8"); // 1,根据id查询元素 getElementById Element element1 = doc.getElementById("people"); // 2,根据标签获取元素 getElementsByTag Element element2 = doc.getElementsByTag("span").first(); // 3,根据class获取元素 getElementsByClass Element element3 = doc.getElementsByClass("").first(); // 4,根据属性获取元素 getElementsByAttribute Element element4 = doc.getElementsByAttribute("").last(); // 根据属性和属性值获取 Element element5 = doc.getElementsByAttributeValue("abc","123").last();
selector选择器概述
Selector选择器组合使用
伪选择器selectors
attr(String key)
获取和attr(String key, String value)
设置属性attributes()
获得所有属性id()
,className()
和classNames()
text()
获取和text(String value)
设置文本内容html()
获取和html(String value)
设置内部HTML内容outerHtml()
获取外部HTML值data()
获取数据内容(例如script
和style
标签)tag()
和 tagName()
append(String html)
, prepend(String html)
appendText(String text)
, prependText(String text)
appendElement(String tagName)
, prependElement(String tagName)
html(String value)
在解析文档并找到一些元素之后,您将需要获取这些元素中的数据。
Element.id()
Element.tagName()
Element.className()
和 Element.hasClass(String className)