Jsoup 解析 HTML

来源:互联网 发布:英文视频软件 编辑:程序博客网 时间:2024/06/03 16:55

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内容

说明

上述方法是元素数据访问的核心办法。此外还其它一些方法可以使用:

  • Element.id()
  • Element.tagName()
  • Element.className() and Element.hasClass(String className)

这些访问器方法都有相应的setter方法来更改数据.

参见

  • ElementElements集合类的参考文档
  • URLs处理
  • 使用CSS选择器语法来查找元素

[java] view plaincopy
  1. jsoup 是一款 Java 的HTML 解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于JQuery的操作方法来取出和操作数据。请参考:http://jsoup.org/  
  2.   
  3.     jsoup的主要功能如下:  
  4.   
  5.      从一个URL,文件或字符串中解析HTML;  
  6.   
  7.      使用DOM或CSS选择器来查找、取出数据;  
  8.   
  9.      可操作HTML元素、属性、文本;  
  10.   
  11.      jsoup是基于MIT协议发布的,可放心使用于商业项目。  
  12.   
  13.     下载和安装:  
  14.   
  15.      maven安装方法:  
  16.   
  17.       把下面放入pom.xml下  
  18.   
  19.        <dependency>  
  20.   
  21.          <!-- jsoup HTML parser library @ http://jsoup.org/ -->  
  22.   
  23.         <groupId>org.jsoup</groupId>  
  24.   
  25.         <artifactId>jsoup</artifactId>  
  26.   
  27.         <version>1.5.2</version>  
  28.   
  29.        </dependency>  
  30.   
  31.      用jsoup解析html的方法如下:  
  32.   
  33.        解析url html方法  
  34.   
  35.   
  36.   
  37. Document doc =Jsoup.connect("http://example.com") .data("query","Java")   .userAgent("Mozilla")   .cookie("auth","token")   .timeout(3000)   .post();  
  38.   
  39.   
  40.      从文件中解析的方法:  
  41.   
  42.   
  43.   
  44.   
  45.   
  46. File input =newFile("/tmp/input.html");Document doc =Jsoup.parse(input,"UTF-8","http://example.com/");  
  47.   
  48.   
  49.   
  50.   
  51.  类试js  jsoup提供下面方法:  
  52.   
  53.   
  54.   
  55. getElementById(String id) 用id获得元素  
  56.   
  57. getElementsByTag(String tag) 用标签获得元素  
  58.   
  59. getElementsByClass(String className) 用class获得元素  
  60.   
  61. getElementsByAttribute(String key)  用属性获得元素  
  62.   
  63.   
  64.   
  65. 同时还提供下面的方法提供获取兄弟节点:  
  66.   
  67. siblingElements(), firstElementSibling(), lastElementSibling();nextElementSibling(), previousElementSibling()  
  68.   
  69. 用下面方法获得元素的数据:  
  70.   
  71.   
  72.   
  73. attr(String key)  获得元素的数据   
  74.   
  75. attr(String key, String value) t设置元素数据   
  76.   
  77. attributes() 获得所以属性   
  78.   
  79. id(), className()  classNames() 获得id class得值  
  80.   
  81. text()获得文本值  
  82.   
  83. text(String value) 设置文本值   
  84.   
  85. html() 获取html    
  86.   
  87. html(String value)设置html  
  88.   
  89. outerHtml() 获得内部html   
  90.   
  91. data()获得数据内容  
  92.   
  93. tag()  获得tag 和 tagName() 获得tagname  
  94.   
  95.   
  96.   
  97. 操作html提供了下面方法:  
  98.   
  99.   
  100.   
  101. append(String html), prepend(String html)  
  102.   
  103. appendText(String text), prependText(String text)  
  104.   
  105. appendElement(String tagName), prependElement(String tagName)  
  106.   
  107. html(String value)  
  108.   
  109. 通过类似jquery的方法操作html  
  110. 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  
  111.   
  112.   
  113. 支持的操作有下面这些:  
  114.   
  115.   
  116.   
  117. tagname 操作tag  
  118.   
  119. ns|tag ns或tag  
  120.   
  121. #id  用id获得元素   
  122.   
  123. .class 用class获得元素  
  124.   
  125. [attribute] 属性获得元素  
  126.   
  127. [^attr]: 以attr开头的属性  
  128.   
  129. [attr=value] 属性值为value  
  130.   
  131. [attr^=value], [attr$=value], [attr*=value]   
  132.   
  133. [attr~=regex]正则  
  134.   
  135. *:所以的标签   
  136.   
  137. 选择组合  
  138. el#id el和id定位  
  139.   
  140. el.class e1和class定位  
  141.   
  142. el[attr] e1和属性定位  
  143.   
  144. ancestor child ancestor下面的child  
  145.   
  146. 等等  
0 0
原创粉丝点击