文档章节

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

yolinfeng
 yolinfeng
发布于 2015/06/07 16:14
字数 397
阅读 20
收藏 0

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


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

public String getHtmlString(String urlString) {
		try {
			URL url = new URL(urlString);
			URLConnection ucon = url.openConnection();
			InputStream instr = ucon.getInputStream();
			BufferedInputStream bis = new BufferedInputStream(instr);
			ByteArrayBuffer baf = new ByteArrayBuffer(500);
			int current = 0;
			while ((current = bis.read()) != -1) {
				baf.append((byte) current);
			}
			return EncodingUtils.getString(baf.toByteArray(), "gbk");
		} catch (Exception e) {
			return "";
		}
	}

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


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

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

String htmlString = getHtmlString("http://www.cnbeta.com");
Document document = Jsoup.parse(htmlString);
比如要获取cnbeta的html的title,只需:
String title = document.head().getElementsByTag("title").text();

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

Document doc = Jsoup.parse(new URL("http://www.cnbeta.com"), 5000);
其中5000是连接网络的超时时间。


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


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

运行效果图——

 




本文转载自:http://blog.csdn.net/barryhappy/article/details/7366654

yolinfeng
粉丝 12
博文 196
码字总数 11946
作品 0
珠海
架构师
私信 提问
jsoup 1.6.1 发布,HTML解析器

jsoup 是一款 Java 的HTML 解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于JQuery的操作方法来取出和操作数据。 jsoup的主要功能如下:...

红薯
2011/07/02
6K
0
jsoup--android程序设置防止反编译后程序崩溃

android程序中使用jsoup解析html文件正常。然而,当我将程序设置防反编译(proguard.config)后, 每次运行到含有jsoup部分时就出错。程序直接崩溃掉,不做此设置,就不会出现问题。求解!谢谢...

gghh
2012/12/22
674
0
android TextView webView 显示 html table 标签内容

1.使用jsoup解析html的table中的文本信息 2.TextView 是不支持 HTML 标签和样式的,只支持一些固定的标签和样式,之所以不使用 webview 是因为 webview 太重了,而我有好多个 TextView 后台返...

东街小霸王
2018/12/25
82
0
jsoup 1.11.3 发布,Java 的 HTML 解析器

jsoup 是一款 Java 的HTML 解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于JQuery的操作方法来取出和操作数据。 jsoup的主要功能如下:...

周其
2018/04/16
1K
13
自己一个安卓APP项目技术方案请求支持:

自己一个安卓APP项目技术方案请求支持: 背景:本人开发经验较少 一点点JAVA+一点点安卓+一点一点HTML 需求:从一个国外网站上抓一些数据,重新设计UI并显示在安卓APP的页面上 有一个方案是:...

wuhuasen5656
2015/07/16
1K
5

没有更多内容

加载失败,请刷新页面

加载更多

数据可视化赋能大数据价值释放,助力大数据价值应用落地

今天,大数据已无所不在,并且正越来越广泛的被应用到金融、互联网、科学、电商、工业甚至渗透到我们生活的方方面面中,获取的渠道也越来越便利。 然而,很多公司企业只知道大数据的重要性,...

NBI大数据可视化
4分钟前
1
0
vim 配置 java complete

遇到的一个坑 安装好插件后,启动 Vim 时遇到过这样一个错误 No Javavi library classes found, it means that we couldn't compile it. Do you have JDK8+ installed? Failed to compile ja......

MtrS
7分钟前
0
0
收藏功能的实现

1.点击按钮,前端判断当前收藏状态;若已收藏,则发起取消收藏指令,否则发起收藏指令 2.通过接口将用户ID和商品ID传到后台 3.后端接受信息,更新对应内容的收藏数,并在收藏数据表中插入/删...

无精疯
23分钟前
3
0
idea 打开一个新的项目,maven都需要重新配置,解决方案

需要有个默认全局配置 File->Other Settings -> Default Settings 将Maven home directory目录修改成我们自定安装Maven的目录...

观海562
49分钟前
6
0
输出乘法口诀表

#include<stdio.h> #include<stdlib.h> int main(){ int a, b, c; int n = 9; for (a = 1; a <= n; a++){ for (b = 1; b <= a; b++){ c = a*b; //输出a,b,c三个数 所以格式为"%d*%d=%d" %-......

Lxxxxx256
53分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部