/Jsoup的简介:
jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。
Jsoup的功能:
1.从一个URL,文件或字符串中解析HTML;
2.使用DOM或CSS选择器来查找、取出数据;
3.可操作HTML元素、属性、文本;
做了一个这样的demo,先看效果图:
(只能上传2M以下,这个真悲催,录了好多次,就这一次小于2M,将就看吧,是一个瀑布流样式,实现下拉刷新,上拉加载更多…)
资源来源:美女图片:http://www.topit.me/tag/美女?p=2
选取截取部分:
在class属性为catalog的div中,所包含的每一个class属性为”e m”的div下都包含一个图片,前端中称div为一个盒子模型,打开其中的一个div,我们可以看到里面的img标签,我们通过这个标签中的src属性,就可以拿到图片的地址。
通过Jsoup我们拿到整个html文档,通过查找class为”e m”的标签,我们拿到一个集合,集合包含整个class属性为”e m”的列表,遍历整个集合,得到其中的每一个div,html中叫这个div为元素也叫标签,整个集合得到的是一个Elements,每一个元素是Element,通过这个Element,再次调用getElementsByTagName,根据img标签,可以获取这个img元素,最后根据这个元素,获取属性为src的内容,就可以取到这个图片地址了,当然还可以获取里面的所有属性信息,你高兴就好….(不明白的就在下面拍砖,我再给你讲讲)。
对应代码:
try { //调用网络操作获取返回来的html
json = Helper.getStringFromUrl(url);
} catch (IOException e) {
e.printStackTrace();
}
if(null != json){
document= Jsoup.parse(json);
Elements es=null;
Elements elements=document.getElementsByClass("e m");
for (Element element : elements) {
DuitangInfo newsInfo = new DuitangInfo();
String imageUrl=element.getElementsByTag("img").attr("data-original");
if(imageUrl.toString().trim()==null||imageUrl.toString().trim().equals(""){
imageUrl=element.getElementsByTag("img").attr("src");
newsInfo.setIsrc(imageUrl);
}else {
newsInfo.setIsrc(imageUrl);
}
//图片如果有高度的话,可以取得图片高度,在设置
newsInfo.setHeight(200+(new Random().nextInt(200)));
duitangs.add(newsInfo);
}
}
也可以这么写:
//在异步中调用
Connection conn=Jsoup.connect("url");
Document document=conn.get();//同样可以得到document
总结: Jsoup通过操作网络返回的或者本地读取的html,生成一个DoM树对象,在对这个Dom数进行遍历解析,提取里面想要获取内容、属性值的就可以了,拿到数据,设置在view上,完成操作…
有问题欢迎拍砖,多多指教…..
转载请标明:http://blog.youkuaiyun.com/zxyudia/article/details/61917964