Jsoup入门-解析和遍历一个html文档

时间:2014-07-15 23:31:20   收藏:0   阅读:4901

解析和遍历一个HTML文档

如何解析一个HTML文档:

String html = "<html><head><title>First parse</title></head>"
  + "<body><p>Parsed HTML into a doc.</p></body></html>";
Document doc = Jsoup.parse(html);

(更详细内容可查看 解析一个HTML字符串.)

其解析器能够尽最大可能从你提供的HTML文档来创见一个干净的解析结果,无论HTML的格式是否完整。比如它可以处理:

一个文档的对象模型

数据抽取

  你有一个HTML文档,你想从中提取数据。而且你知道一般的HTML文档的结构。可用类似dom方法解析HTML文档。

 1     /**
 2      * 获取htmlElement元素
 3      * @author bling
 4      * @throws IOException 
 5      * @create Date:2014-07-13
 6      */
 7     @Test
 8     public void getDataElement() throws IOException{
 9         File input = new File("tmp/input.html");
10         Document doc = Jsoup.parse(input, "UTF-8", "http://example.com/");
11         
12         Element content = doc.getElementById("content");
13         Elements links = content.getElementsByTag("a");
14         for(Element link : links){
15             String linkHref = link.attr("href");
16             String linkText = link.text();
17             System.out.println("linkHref:"+linkHref+"------"+"linkText:"+linkText);
18         }
19     }

Elements 提供类似查找Element的方法,并可提取操作数据,DOM对象为上下文:根据父亲Document查找匹配之下的document,并根据找到的document查找其下的孩子元素,使用这种方式可查找你想要的数据。

  1. getElementById(String id)
  2. getElementsByTag(String tag)
  3. getElementsByClass(String className)
  4. getElementsByAttribute(String key) (and related methods)
  5. Element siblings: siblingElements()firstElementSibling()lastElementSibling();nextElementSibling()previousElementSibling()
  6. Graph: parent()children()child(int index)
  1. attr(String key) to get and attr(String key, String value) to set attributes
  2. attributes() to get all attributes
  3. id()className() and classNames()
  4. text() to get and text(String value) to set the text content
  5. html() to get and html(String value) to set the inner HTML content
  6. outerHtml() to get the outer HTML value
  7. data() to get data content (e.g. of script and style tags)
  8. tag() and tagName()
  1. append(String html)prepend(String html)
  2. appendText(String text)prependText(String text)
  3. appendElement(String tagName)prependElement(String tagName)
  4. html(String value)

GitHub例子代码:https://github.com/Java-Group-Bling/Jsoup-learn

Jsoup入门-解析和遍历一个html文档,布布扣,bubuko.com

原文:http://www.cnblogs.com/yangml/p/3841353.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!