android解析html新闻的方法,手把手教学Android用jsoup解析html实例

1.jsoup介绍

很多时候,我们需要从各种网页上面抓取数据,而jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。

2.使用场景

下面是一张关于美食的截图,可以留意到这是一个html网页,当我们想要抓取里面的数据的时候,jsoup就能帮到我们很多。

b6973bdfc68dc4720e4e5c781cf2478e.png

接下来开始手把手教学

首先,也是很重要的一步,就是下载jar包,丢到libs里面

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

dependencies {

compile 'org.jsoup:jsoup:1.9.2'

}

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

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

7d8253767f8aff9f6f6d98f58cc63b67.png

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

为节点的

try {

//从一个URL加载一个Document对象。

Document doc = Jsoup.connect("http://home.meishichina.com/show-top-type-recipe.html").get();

//选择“美食天下”所在节点

Elements elements = doc.select("div.top-bar");

//打印

Log.i("mytag",elements.select("a").attr("title"));

}catch(Exception e) {

Log.i("mytag",e.toString());

}

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

f4782e2d279fbf04f5cc1c19d388fe21.png

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):

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值