专栏首页Linux技术资源分享Java解析和遍历html文档利器

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Android获取网络状态

    前言:在开发安卓移动端时,几乎每一个app都需要连接网络,因此,对设备的网络状态检测是很有必要的!比如:检测当前网络是否可用,当前可用的网络是属于WIFI还是M...

    AlicFeng
  • 团队项目开发规范

    分享链接:https://github.com/alicfeng/TeamStandard 分享一个基于 gitbook 构建团队项目开发规范文档,正在完善中...

    AlicFeng
  • wget常用参数

    AlicFeng
  • Android 滑动效果基础篇(三)—— Gallery仿图像集浏览

    Android系统自带一个Gallery浏览图片的应用,通过手指拖动时能够非常流畅的显示图片,用户交互和体验都很好。

    阳光岛主
  • java使用POI处理EXCEL的核心类(二)

    接上一篇写了使用poi导出excel,今天把读取excel的方法补上,核心类如下:

    用户5640963
  • 再论betapart

    但是其中将beta多样性分解成两部分的概念一直没有特别清楚。正好最近找其他文献的时候碰巧看到了一些相关的内容,对此概念有了更深的理解,故作此篇正我视听。

    生物信息知识分享
  • 你需要理解的 Java 反射机制知识总结

    在面向对象的世界里,万物皆对象。类是对象,类是java.lang.Class类的实例对象。另外class类只有java虚拟机才能new出来。任何一个类都是Cla...

    Java团长
  • ASP.NET MVC 6路由技术

    在我们跳转到自定义路由之前,我们必须先了解下MVC6基于MVC5的基本变化。 ASP.NET MVC6将所有必要的启动服务,定义和配置的应用程序依赖关系放在一个...

    Techeek
  • vsftp启用root用户

    vsftp的默认设置是不允许root用户来登陆的,我们可以通过修改配置文件来使root用户登陆 首先登陆到服务器,然后cd到vsftp的配置文件夹 cd /...

    bboysoul
  • 在SAP云平台的CloudFoundry环境下消费ABAP On-Premise OData服务

    我的前一篇文章 使用Java+SAP云平台+SAP Cloud Connector调用ABAP On-Premise系统里的函数介绍了在SAP云平台的Neo环境...

    Jerry Wang

扫码关注云+社区

领取腾讯云代金券