Android笔记使用Jsoup解析Html
16lz
2021-01-26
我的Android笔记(八)—— 使用Jsoup解析Html
分类:AndroidJava 2012-03-18 16:50 4990人阅读 评论(11) 收藏 举报 android listview html string url exception想要做一个看新闻的应用,类似Cnbeta客户端的东西。大致思路如下:根据链接获取新闻列表页的html代码,然后解析,找到所有的新闻标题和新闻链接用listView显示,当点击ListView的Item再加载相应的新闻内容。
其中获取html代码,可以使用如下代码实现:
[java] view plain copy print ?
- publicStringgetHtmlString(StringurlString){
- try{
- URLurl=newURL(urlString);
- URLConnectionucon=url.openConnection();
- InputStreaminstr=ucon.getInputStream();
- BufferedInputStreambis=newBufferedInputStream(instr);
- ByteArrayBufferbaf=newByteArrayBuffer(500);
- intcurrent=0;
- while((current=bis.read())!=-1){
- baf.append((byte)current);
- }
- returnEncodingUtils.getString(baf.toByteArray(),"gbk");
- }catch(Exceptione){
- return"";
- }
- }
传入一个网页链接,将返回此链接的html代码(String)。
然后就是解析此html代码了。经过google,发现了java的一个很好用的解析html的库,Jsoup:http://jsoup.org/
很容易使用,方法类似javascript和JQuery。只需先构建一个Jsoup的Document对象,然后就可以像使用js一个解析html了
[java] view plain copy print ?
- StringhtmlString=getHtmlString("http://www.cnbeta.com");
- Documentdocument=Jsoup.parse(htmlString);
- Stringtitle=document.head().getElementsByTag("title").text();
另外构建Document的时候也可以直接使用URL,像这样:
[java] view plain copy print ?- Documentdoc=Jsoup.parse(newURL("http://www.cnbeta.com"),5000);
有关Jsoup的下载和更多介绍,见其官网:http://jsoup.org/
我写的一个demo,点击按钮后会加载然后显示cnbeta首页的所有新闻标题和链接地址,下载:http://download.csdn.net/detail/barryhappy/4151450,zip包里有jsoup的jar包,导入项目后可能需要手动导入此jar包。
运行效果图——
更多相关文章
- SpringBoot 2.0 中 HikariCP 数据库连接池原理解析
- Android让手机主动亮屏的代码
- Android(安卓)ActionBar完全解析,使用官方推荐的最佳导航栏(下)
- Opencv4.1链接so错误(android sdk) error: undefined reference t
- Android数据解析-JSON解析
- Android(安卓)opengl es 2.0怎么学习
- Android控件(View)之TextView, Button, ImageButton, ImageView,
- Android(安卓)Widget开发案例(伦敦奥运会倒计时!)
- Android(安卓)Studio(二):基本配置