全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

手把手教学Android用jsoup解析html实例

1.jsoup介绍

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

jsoup官方文档:https://jsoup.org/cookbook/

2.使用场景

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


接下来开始手把手教学

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

jar包下载地址:http://jsoup.org/download

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

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

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

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

找到需要的,例如上图这个 “美食天下” ,可以看到 “美食天下” 是放在以 <div class="top-bar" id="J_top_bar"> 为节点的 <a title="美食天下" 中,要获取这个“美食天下”,代码可以这样写:

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

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


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

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

废话不多说上代码

try {  
  //还是一样先从一个URL加载一个Document对象。
  Document doc = Jsoup.connect("http://home.meishichina.com/show-top-type-recipe.html").get();

  //“椒麻鸡”和它对应的图片都在<div class="pic">中
  Elements titleAndPic = doc.select("div.pic");
  //使用Element.select(String selector)查找元素,使用Node.attr(String key)方法取得一个属性的值
  Log.i("mytag", "title:" + titleAndPic.get(1).select("a").attr("title") + "pic:" + titleAndPic.get(1).select("a").select("img").attr("data-src"));

  //所需链接在<div class="detail">中的<a>标签里面
  Elements url = doc.select("div.detail").select("a");
  Log.i("mytag", "url:" + url.get(i).attr("href"));

  //原料在<p class="subcontent">中
  Elements burden = doc.select("p.subcontent");
  //对于一个元素中的文本,可以使用Element.text()方法
  Log.i("mytag", "burden:" + burden.get(1).text());

}catch(Exception e) {  
  Log.i("mytag", e.toString());
}

大功告成,接下来看看log


没有问题!那么教学可以结束了!

注意:

Jsoup.connect(String url)方法不能运行在主线程,否则会报NetworkOnMainThreadException

最后上一张应用在项目的效果图:


有没有发现熟悉的椒麻鸡?很酷炫有木有!

小结

整堂课分几步:

1.下载jar包并丢到libs(或者在gradle)

2.找到心仪的网页

3.用Jsoup.connect()获取网页的document

4.查看网页源码,对准你想要的地方,给他来一个Element.select(String selector)

5.用Node.attr(String key)或者Element.text()方法把数据抽出来

6.没有6了就是这么简单!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# jsoup解析html  # Android使用jsoup解析html  # 安卓jsoup解析html  # Jsoup解析html实现招聘信息查询功能  # Android开发之利用jsoup解析HTML页面的方法  # Android使用Jsoup解析Html表格的方法  # Java中使用开源库JSoup解析HTML文件实例  # crawler4j抓取页面使用jsoup解析html时的解决方法  # Jsoup解析HTML实例及文档方法详解  # 可以看到  # 加载  # 可以使用  # 会报  # 方法来  # 几个  # 文档  # 放在  # 都在  # 你就  # 就能  # 下载地址  # 可以用  # 不多  # 打了  # 右键  # 所需  # 这是一个  # 很重要  # 来看看 


相关文章: seo网站制作优化,网站SEO优化步骤有哪些?  如何在阿里云服务器自主搭建网站?  定制建站如何定义?其核心优势是什么?  如何通过山东自助建站平台快速注册域名?  如何在搬瓦工VPS快速搭建网站?  实现点击下箭头变上箭头来回切换的两种方法【推荐】  建站之星会员如何解锁更多建站功能?  建站之星如何快速生成多端适配网站?  合肥做个网站多少钱,合肥本地有没有比较靠谱的交友平台?  建站之星后台密码遗忘或太弱?如何重置与强化?  建站之星与建站宝盒如何选择最佳方案?  如何通过免费商城建站系统源码自定义网站主题与功能?  我的世界制作壁纸网站下载,手机怎么换我的世界壁纸?  建站之星后台密码遗忘?如何快速找回?  ,怎么用自己头像做动态表情包?  如何高效搭建专业期货交易平台网站?  建站OpenVZ教程与优化策略:配置指南与性能提升  如何选择服务器才能高效搭建专属网站?  建站之星安装模板失败:服务器环境不兼容?  香港服务器WordPress建站指南:SEO优化与高效部署策略  C++时间戳转换成日期时间的步骤和示例代码  如何在橙子建站中快速调整背景颜色?  大学网站设计制作软件有哪些,如何将网站制作成自己app?  上海网站制作网页,上海本地的生活网站有哪些?最好包括生活的各个方面的?  安徽网站建设与外贸建站服务专业定制方案  深圳网站制作的公司有哪些,dido官方网站?  如何选择高效稳定的ISP建站解决方案?  c++如何打印函数堆栈信息_c++ backtrace函数与符号名解析【方法】  网站制作公司,橙子建站是合法的吗?  整蛊网站制作软件,手机不停的收到各种网站的验证码短信,是手机病毒还是人为恶搞?有这种手机病毒吗?  如何用IIS7快速搭建并优化网站站点?  如何访问已购建站主机并解决登录问题?  网站制作费用多少钱,一个网站的运营,需要哪些费用?  如何用好域名打造高点击率的自主建站?  黑客入侵网站服务器的常见手法有哪些?  PHP正则匹配日期和时间(时间戳转换)的实例代码  杭州银行网站设计制作流程,杭州银行怎么开通认证方式?  如何在云虚拟主机上快速搭建个人网站?  较简单的网站制作软件有哪些,手机版网页制作用什么软件?  网站app免费制作软件,能免费看各大网站视频的手机app?  如何通过西部数码建站助手快速创建专业网站?  公司门户网站制作流程,华为官网怎么做?  网站制作壁纸教程视频,电脑壁纸网站?  如何构建满足综合性能需求的优质建站方案?  建站IDE高效指南:快速搭建+SEO优化+自适应模板全解析  网站好制作吗知乎,网站开发好学吗?有什么技巧?  免费网站制作模板下载,除了易企秀之外还有什么H5平台可以制作H5长页面,最好是免费的?  高端建站三要素:定制模板、企业官网与响应式设计优化  长春网站建设制作公司,长春的网络公司怎么样主要是能做网站的?  如何在香港免费服务器上快速搭建网站? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。