Jsoup 解析 HTML

Jsoup 文档

方法

示例:

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方法来更改数据.

参见


 

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



等等


 



 

你可能感兴趣的:(JSoup)