Android应用中的html怎么利用jsoup进行解析

Android应用中的html怎么利用jsoup进行解析?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

站在用户的角度思考问题,与客户深入沟通,找到麻城网站设计与麻城网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都网站设计、网站建设、外贸网站建设、企业官网、英文网站、手机端网站、网站推广、主机域名网站空间、企业邮箱。业务覆盖麻城地区。

1.jsoup介绍

jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。

2.使用场景

Android studio玩家可以不下载jar包,在Gradle里面加入

dependencies {
  compile 'org.jsoup:jsoup:1.9.2'
}

然后,找到你心仪的网页去抓取数据

这里我们我继续使用美食的网页,然后右键查看网页源码,或者按F12,接下来可以看到一大堆标签:

Android应用中的html怎么利用jsoup进行解析

找到需要的,例如上图这个 “美食天下” ,可以看到 “美食天下” 是放在以

为节点的
try {  
  //从一个URL加载一个Document对象。
  Document doc = Jsoup.connect("http://home.meishichina.com/show-top-type-recipe.html").get();
  //选择“美食天下”所在节点
  Elements elements = doc.select("div.top-bar");  
  //打印 标签里面的title
  Log.i("mytag",elements.select("a").attr("title"));
}catch(Exception e) {  
  Log.i("mytag", e.toString());
}

接下来看一下打印出来的结果:

Android应用中的html怎么利用jsoup进行解析

Jsoup.connect(String url)方法从一个URL加载一个Document对象。如果从该URL获取HTML时发生错误,便会抛出 IOException,应适当处理。

一旦拥有了一个Document,你就可以使用Document中适当的方法或它父类 Element和Node中的方法来取得相关数据。

public class Element extends Node
public class Document extends Element

很多文章都是说一大堆原理然后放出一个简单的例子,就跟我上面简单的打了一个log一样,然后发现用起来的时候是没那么简单的。为了大家能不看文档也可以直接使用(并且看不懂那一大堆标签也可以用),我决定再举一个例子(其实也就是比上面多打几个log):

下图红色框框是我们要获取的数据,可以看到他们对应的节点就是蓝色圆圈里面的