Java解析和遍历html文档利器

前言:几乎任何的语言都可以解析和遍历html超文本,我常用的语言就是php啦,但是我想在android客户端获取网络http的的数据,虽然可以使用php但是需要二次连接和php环境,然而就直接使用java语言去搞,那么不可能直接用java原生语言去码的啦,使用****Jsoup****去解析,Jsoup是java语言一款不错的html解析文档的利器!


****Jsoup的简介****
Jsoup是java语言一款不错的html解析和遍历文档的利器。


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

没有关闭的标签 
 <p>Lorem <p>Ipsum parses to <p>Lorem</p> <p>Ipsum</p>

隐式标签 
 <td>Table data</td>包装成<table><tr><td>
创建可靠的文档结构(html标签包含head 和 body,在head只出现恰当的元素)

****Jsoup常用的方法****
从一个URL加载一个Document

简单的get方法
Document doc = Jsoup.connect("http://www.domain.com/").get();
String title = doc.title();
带头信息的post方法
Document doc = Jsoup.connect("http://www..domain.com")  
                  .data("username", "Alic")  
                  .userAgent("Mozilla")  
                  .cookie("auth", "token")  
                  .timeout(3000)  
                  .post();

从文件中加载HTML文档

File file = new File("path");
Document doc = Jsoup.parse(file, "UTF-8", "http://www.domian.com/");

简单的从String加载HTML

Document doc = Jsoup.parse(String html);

使用DOM方法来遍历一个文档

File file = new File("/path/index.html");
Document doc = Jsoup.parse(file, "UTF-8", "http://www.domian.com/");
Element content = doc.getElementById("content");//获取id为content的dom节点
Elements links = content.getElementsByTag("a");//获取所有的a标签dom节点
//遍历所有的a标签
for (Element link : links) {  
      String linkHref = link.attr("href");  
      String linkText = link.text();
}
Elements links = doc.select("a[href]"); //带有href属性的a元素
Elements pngs = doc.select("img[src$=.png]");
  //扩展名为.png的图片
Element masthead = doc.select("div.masthead").first();
  //class等于masthead的div标签
Elements resultLinks = doc.select("h3.r > a"); //在h3元素之后的a元素

常用的方法:见官网API文档传送Jsoup

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 172,813评论 25 708
  • 如果不是他,我可能一辈子都不会下载“简书”这玩意儿吧,同期还包括了Instrapaper和学习markdown等等...
    怀揣热水瓶阅读 419评论 0 0
  • 一、简介 Systrace允许你监视和跟踪Android系统的行为(trace)。它会告诉你系统都在哪些工作上花费...
    Diffey阅读 11,739评论 2 5
  • 太平路,厦门开马路时期,此地因拆迁民居引起纠纷不断,路成后纠纷方告平息,因起名太平,寓和睦太平盛世之意。早时太平路...
    赛林小草阅读 398评论 0 2
  • 心灵自由写作第八期第三篇 刚提笔,一旁准备入睡的大女儿又打断了我,看见情绪的升起,安住情绪安顿好女儿,侧卧蜷缩,感...
    凡音vetina阅读 241评论 0 3