这些天业余时间比较多,闲来无事,想起了以前看过开发任意网站客户端的一篇文章,就是利用jsoup解析网站网页,通过标签获取想要的内容。好了废话不多说,用到的工具为 jsoup-1.7.2.jar包,具体jsoup的相关文档,请去这边看http://jsoup.org/,这里有全部Api可以查询。

这里解析的网站是一个食谱网站,首先解析的是大类栏目标签。

如果你使用过jquery那么 ,接下来的事情就小菜一碟了,我们按F12进入浏览器的开发者模式,去分析当前html页面的结构,如下图:

每个<li></li>标签里面的值就是我们需要的,接下来我们需要异步去获取网页信息,首先创建一个连接,生成一个Document对象,取得标题所在<ul>的id值,通过select过滤。

Elements divs = content.select("#siteNav");

然后通过Jsoup去解析上图的标签,通过循环取出标题栏还有子目录的超链接,插入数据库,超链接用作展开子目录的网页地址,像这种网站大的标题结构一般是不会改变的,可以留作缓存,而不用每次进入总要加载解析。

//异步获取信息class Loadhtml extends AsyncTask<String, String, String>{ProgressDialog bar;Document doc;@Overrideprotected String doInBackground(String... params) {// TODO Auto-generated method stubtry {doc = Jsoup.connect(Constans.NetAddress).timeout(5000).post();Document content = Jsoup.parse(doc.toString());Elements divs = content.select("#siteNav");Document divcontions = Jsoup.parse(divs.toString());Elements element = divcontions.getElementsByTag("li");Log.d("element", element.toString());for(Element links : element){String title = links.getElementsByTag("a").text();                     String link   = links.select("a").attr("href").replace("/", "").trim();String url  = Constans.NetAddress+link;ContentValues values = new ContentValues();values.put("Title", title);values.put("Url", url);usedatabase.insert("Cach", values);}} catch (IOException e) {// TODO Auto-generated catch block
                e.printStackTrace();}return null;}@Overrideprotected void onPostExecute(String result) {// TODO Auto-generated method stubsuper.onPostExecute(result);
//            Log.d("doc", doc.toString().trim());
            bar.dismiss();ListItemAdapter adapter = new ListItemAdapter(context, usedatabase.getlist());listmenu.setAdapter(adapter);}@Overrideprotected void onPreExecute() {// TODO Auto-generated method stubsuper.onPreExecute();bar = new ProgressDialog(context);bar.setMessage("正在加载数据····");bar.setIndeterminate(false);bar.setCancelable(false);bar.show();}}

最终手机断显示

今天就总结到这里,下次具体讲解析完数据后,通过SQLITE存储,还有每个标题的子目录展开等。

转载于:https://www.cnblogs.com/LIANQQ/p/3460275.html

Android利用Jsoup解析html 开发网站客户端小记。相关推荐

  1. Android 利用jsoup解析 html

     原由:我在访问服务器时,回来的数据是html源文件,我需要从html源文件中获取对自己有用的信息. 一般情况下jsoup多用于JAVA方面的开发,可以利用jQuery,DOM一同使用.可以达到抓 ...

  2. Android开发探秘之三:利用jsoup解析HTML页面

    这节主要是讲解jsoup解析HTML页面.由于在android开发过程中,不可避免的涉及到web页面的抓取,解析,展示等等,所以,在这里我主要展示下利用jsoup jar包来抓取cnbeta.com网 ...

  3. Android 使用Jsoup解析网页批量获取图片

    Android 网络图片查看器HappyLook开发 一.前言 二.框架介绍 1.Jsoup简介 2.EventBus简介 3.RecyclerView及Glide 三.具体实现 1.需求确认 2.引 ...

  4. Android利用Gson解析Json数据

    其实,要创建和解析JSON数据,也可以使用GSON来完成.GSON是Google提供的用来在Java对象和JSON数据之间进行映射的Java类库.使用GSON,可以很容易的将一串JSON数据转换为一个 ...

  5. 利用jsoup解析网站网页

    用到的工具为 jsoup-1.7.2.jar包,具体jsoup的相关文档,请去这边看http://jsoup.org/,这里有全部Api可以查询. 首先请求网页, Document doc = Jso ...

  6. Android 使用Jsoup解析Html

    想要做一个看新闻的应用,类似Cnbeta客户端的东西.大致思路如下:根据链接获取新闻列表页的html代码,然后解析,找到所有的新闻标题和新闻链接用listView显示,当点击ListView的Item ...

  7. 利用dns解析来实现网站的负载均衡

    当网站的访问量大了就会考虑负载均衡,这也是每一个架构师的基本功了,其基本地位就相当于相声里的说学逗唱,活好不好就看这个了 :) 传统的负载均衡思路是单点的,不管你是硬件的还是软件的基本都是这样的原理 ...

  8. 利用Jsoup解析HTML

    http://passover.blog.51cto.com/2431658/484673 最近又要做html内容抽取,这次打算尝试一下除了用正则表达式以外的其他方式.自然第一个想到的就是HtmlPa ...

  9. Android利用jsoup爬虫爬网页数据(一)

    效果图太大了,我放到github上了,想看效果的点击以下链接: 效果图一 效果图二 首先这个jsoup只能对html爬取数据,js里面的东西爬不到,暂时先只爬html的数据,这里先说明一下,博主仅仅出 ...

最新文章

  1. Thecus色卡司1U机架式网络存储服务器
  2. (转)从一道面试题彻底搞懂hashCode与equals的作用与区别及应当注意的细节
  3. Cluster coefficient的理解
  4. chrome web store的信息
  5. adf.test_在ADF 12.2.1.3中使用基于JSON的REST Web服务
  6. IDEA常用快捷键【win-mac对比】
  7. java的向下转型_终于搞明白向下转型的作用了,还不懂的进来看下.
  8. Linux操作系统PS命令详细解析
  9. IOConsole Updater 报错解决办法
  10. Hbuilder 跳转另一个app
  11. iOS 自带地图定位失败原因 Code=0和Code=1区别
  12. Fultter之Element和Widget对应关系解析
  13. 6月27日 OGDF不同的布局算法
  14. 拓端tecdat|python安娜卡列妮娜词云图制作
  15. Android studio引入XUI
  16. udacity-谷歌自动驾驶-课程笔记-localization
  17. 计算机一级常用英语缩写,电脑常用英文单词和缩写
  18. LeetCode-1276. 不浪费原料的汉堡制作方案
  19. 【HTML】元素的 alt 和 title 有什么区别?
  20. 鼠标指针下总出现一个滚动条似的方框,怎么办?有图

热门文章

  1. 【放洋屁了】知识焦虑-几点感慨
  2. linux获取java环境变量的值,linux获取java环境变量的值
  3. 分布式入门:常用的分布式基础算法
  4. 以太坊go-ethereum项目源码本地环境搭建
  5. AndroidL分析之Keyguard
  6. 2017年Q1安卓ROOT类恶意病毒发展趋势研究报告
  7. mysql如何定义消耗资源多的sql语句_如何查找消耗资源较大的SQL
  8. android联网程序,android 联网 HttpClient
  9. mscoreei.dll没有被指定在windows上运行_windows注册表详解
  10. matlab平面绘图命令