Jsoup 文档
方法
- 要取得一个属性的值,可以使用
Node.attr(String key)
方法 - 对于一个元素中的文本,可以使用
Element.text()
方法 - 对于要取得元素或属性中的HTML内容,可以使用
Element.html()
, 或Node.outerHtml()
方法
示例:
String html = "<p>An <a href='http://example.com/'><b>example</b></a> link.</p>";
Document doc = Jsoup.parse(html);//解析HTML字符串返回一个Document实现
Element link = doc.select("a").first();//查找第一个a元素
String text = doc.body().text(); // "An example link"//取得字符串中的文本
String linkHref = link.attr("href"); // "http://example.com/"//取得链接地址
String linkText = link.text(); // "example""//取得链接地址中的文本
String linkOuterH = link.outerHtml();
// "<a href="http://example.com"><b>example</b></a>"
String linkInnerH = link.html(); // "<b>example</b>"//取得链接内的html内容
说明
上述方法是元素数据访问的核心办法。此外还其它一些方法可以使用:
这些访问器方法都有相应的setter方法来更改数据.
参见
Element
和Elements
集合类的参考文档- URLs处理
- 使用CSS选择器语法来查找元素
- jsoup 是一款 Java 的HTML 解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于JQuery的操作方法来取出和操作数据。请参考:http://jsoup.org/
- jsoup的主要功能如下:
- 从一个URL,文件或字符串中解析HTML;
- 使用DOM或CSS选择器来查找、取出数据;
- 可操作HTML元素、属性、文本;
- jsoup是基于MIT协议发布的,可放心使用于商业项目。
- 下载和安装:
- maven安装方法:
- 把下面放入pom.xml下
- <dependency>
- <!-- jsoup HTML parser library @ http://jsoup.org/ -->
- <groupId>org.jsoup</groupId>
- <artifactId>jsoup</artifactId>
- <version>1.5.2</version>
- </dependency>
- 用jsoup解析html的方法如下:
- 解析url html方法
- Document doc =Jsoup.connect("http://example.com") .data("query","Java") .userAgent("Mozilla") .cookie("auth","token") .timeout(3000) .post();
- 从文件中解析的方法:
- File input =newFile("/tmp/input.html");Document doc =Jsoup.parse(input,"UTF-8","http://example.com/");
- 类试js jsoup提供下面方法:
- getElementById(String id) 用id获得元素
- getElementsByTag(String tag) 用标签获得元素
- getElementsByClass(String className) 用class获得元素
- getElementsByAttribute(String key) 用属性获得元素
- 同时还提供下面的方法提供获取兄弟节点:
- siblingElements(), firstElementSibling(), lastElementSibling();nextElementSibling(), previousElementSibling()
- 用下面方法获得元素的数据:
- attr(String key) 获得元素的数据
- attr(String key, String value) t设置元素数据
- attributes() 获得所以属性
- id(), className() classNames() 获得id class得值
- text()获得文本值
- text(String value) 设置文本值
- html() 获取html
- html(String value)设置html
- outerHtml() 获得内部html
- data()获得数据内容
- tag() 获得tag 和 tagName() 获得tagname
- 操作html提供了下面方法:
- append(String html), prepend(String html)
- appendText(String text), prependText(String text)
- appendElement(String tagName), prependElement(String tagName)
- html(String value)
- 通过类似jquery的方法操作html
- File input =newFile("/tmp/input.html");Document doc =Jsoup.parse(input,"UTF-8","http://example.com/");Elements links = doc.select("a[href]");// a with hrefElements pngs = doc.select("img[src$=.png]"); // img with src ending .pngElement masthead = doc.select("div.masthead").first(); // div with class=mastheadElements resultLinks = doc.select("h3.r > a");// direct a after h3
- 支持的操作有下面这些:
- tagname 操作tag
- ns|tag ns或tag
- #id 用id获得元素
- .class 用class获得元素
- [attribute] 属性获得元素
- [^attr]: 以attr开头的属性
- [attr=value] 属性值为value
- [attr^=value], [attr$=value], [attr*=value]
- [attr~=regex]正则
- *:所以的标签
- 选择组合
- el#id el和id定位
- el.class e1和class定位
- el[attr] e1和属性定位
- ancestor child ancestor下面的child
- 等等