我的Android笔记(八)—— 使用Jsoup解析Html

分类:AndroidJava 4990人阅读 评论(11) 收藏 举报 android listview html string url exception

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


其中获取html代码,可以使用如下代码实现:

[java] view plain copy print ?
  1. publicStringgetHtmlString(StringurlString){
  2. try{
  3. URLurl=newURL(urlString);
  4. URLConnectionucon=url.openConnection();
  5. InputStreaminstr=ucon.getInputStream();
  6. BufferedInputStreambis=newBufferedInputStream(instr);
  7. ByteArrayBufferbaf=newByteArrayBuffer(500);
  8. intcurrent=0;
  9. while((current=bis.read())!=-1){
  10. baf.append((byte)current);
  11. }
  12. returnEncodingUtils.getString(baf.toByteArray(),"gbk");
  13. }catch(Exceptione){
  14. return"";
  15. }
  16. }

传入一个网页链接,将返回此链接的html代码(String)。


然后就是解析此html代码了。经过google,发现了java的一个很好用的解析html的库,Jsoup:http://jsoup.org/

很容易使用,方法类似javascript和JQuery。只需先构建一个Jsoup的Document对象,然后就可以像使用js一个解析html了

[java] view plain copy print ?
  1. StringhtmlString=getHtmlString("http://www.cnbeta.com");
  2. Documentdocument=Jsoup.parse(htmlString);
比如要获取cnbeta的html的title,只需: [java] view plain copy print ?
  1. Stringtitle=document.head().getElementsByTag("title").text();

另外构建Document的时候也可以直接使用URL,像这样:

[java] view plain copy print ?
  1. Documentdoc=Jsoup.parse(newURL("http://www.cnbeta.com"),5000);
其中5000是连接网络的超时时间。


有关Jsoup的下载和更多介绍,见其官网:http://jsoup.org/


我写的一个demo,点击按钮后会加载然后显示cnbeta首页的所有新闻标题和链接地址,下载:http://download.csdn.net/detail/barryhappy/4151450,zip包里有jsoup的jar包,导入项目后可能需要手动导入此jar包。

运行效果图——



更多相关文章

  1. SpringBoot 2.0 中 HikariCP 数据库连接池原理解析
  2. Android让手机主动亮屏的代码
  3. Android(安卓)ActionBar完全解析,使用官方推荐的最佳导航栏(下)
  4. Opencv4.1链接so错误(android sdk) error: undefined reference t
  5. Android数据解析-JSON解析
  6. Android(安卓)opengl es 2.0怎么学习
  7. Android控件(View)之TextView, Button, ImageButton, ImageView,
  8. Android(安卓)Widget开发案例(伦敦奥运会倒计时!)
  9. Android(安卓)Studio(二):基本配置

随机推荐

  1. Unity3D 调用 Android(安卓)jar 包制作方
  2. android 连接远程数据库(转)
  3. 展望2011年Android发展前景
  4. Android事件处理方法总结-基于回调的事件
  5. Android图形系统的分析与移植--二、Andro
  6. android 初级篇:(一)漫谈android
  7. Android事件处理方法总结-基于回调的事件
  8. Android(安卓)Flutter 混合开发高仿大厂A
  9. Android中资源文件的使用
  10. 谷歌Android手机应用开发环境的搭建