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

参见


[java]  view plain  copy
  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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值