问题
你有一个HTML文档要从中提取数据,并了解这个HTML文档的结构。
方法
将HTML解析成一个Document之后,就可以使用类似于DOM的方法进行操作。示例代码:
File input = new File("/tmp/input.html"); Document doc = Jsoup.parse(input, "UTF-8", "http://example.com/"); Element content = doc.getElementById("content"); Elements links = content.getElementsByTag("a"); for (Element link : links) { String linkHref = link.attr("href"); String linkText = link.text(); }
说明
Elements这个对象提供了一系列类似于DOM的方法来查找元素,抽取并处理其中的数据。具体如下:
查找元素
getElementById(String id)getElementsByTag(String tag)getElementsByClass(String className)getElementsByAttribute(String key)(and related methods)- Element siblings:
siblingElements(),firstElementSibling(),lastElementSibling();nextElementSibling(),previousElementSibling() - Graph:
parent(),children(),child(int index)
元素数据
attr(String key)获取属性attr(String key, String value)设置属性attributes()获取所有属性id(),className()andclassNames()text()获取文本内容text(String value)设置文本内容html()获取元素内HTMLhtml(String value)设置元素内的HTML内容outerHtml()获取元素外HTML内容data()获取数据内容(例如:script和style标签)tag()andtagName()