关于Jsoup的简单使用
来源:互联网 发布:天正软件过期怎么办 编辑:程序博客网 时间:2024/05/29 13:21
一般app客户端需要数据的时候,如果有搭建服务器,可以通过网络请求后台提供的接口或者公开免费的数据平台,请求返回一般是json数据,解析以后展示出来。
但是如果想要获取某个网页上的数据的时候怎么办呢?这个时候就可以通过Jsoup来搞定了。
1.首先导包,下载jsoup-1.8.1.jar包,然后添加到lib中。
2.找一个你喜欢的网页,比如在Chrome浏览器,选择你想要的数据右键,检查,就可以招到想对应的html块,比如我找到了一个学校的新闻版块,如下。
<div class="newslist"> <ul> <li><span>[2016-12-29]</span><a href="news_info7549.html" title="我校举行2016级新生军训动员大会">我校举行2016级新生军训动员大会</a></li> <li><span>[2016-12-21]</span><a href="news_info7528.html" title="我校师生参加泉州市委宣讲团学习贯彻省第十次党代会精神报告会">我校师生参加泉州市委宣讲团学习贯彻省第十次党代会精神报告会</a></li> <li><span>[2016-12-16]</span><a href="news_info7511.html" title="我校举行首届“互联网+”创意设计大赛">我校举行首届“互联网+”创意设计大赛</a></li> <li><span>[2016-12-13]</span><a href="news_info7509.html" title="我校举行首届思政课课外实践与调研成果展示大赛">我校举行首届思政课课外实践与调研成果展示大赛</a></li> <li><span>[2016-12-12]</span><a href="news_info7454.html" title="我校开展“携手抗艾,重在预防”系列活动">我校开展“携手抗艾,重在预防”系列活动</a></li> <li><span>[2016-12-12]</span><a href="news_info7449.html" title="我校举行2017届毕业生大型综合校园招聘会">我校举行2017届毕业生大型综合校园招聘会</a></li> <li><span>[2016-12-09]</span><a href="news_info7427.html" title="我校党委举行学习党的六中全会精神暨部署期末党建工作会议">我校党委举行学习党的六中全会精神暨部署期末党建工作会议</a></li> <li><span>[2016-12-07]</span><a href="news_info7426.html" title="我校与福建众益太阳能科技股份公司举行校企合作签约仪式">我校与福建众益太阳能科技股份公司举行校企合作签约仪式</a></li> <li><span>[2016-12-07]</span><a href="news_info7425.html" title="我校举办大学生疾病预防与急救知识专题讲座">我校举办大学生疾病预防与急救知识专题讲座</a></li> <li><span>[2016-12-06]</span><a href="news_info7392.html" title="我校举办2016年度志愿服务总结表彰暨青年志愿者协会成立十周年庆典晚会">我校举办2016年度志愿服务总结表彰暨青年志愿者协会成立十周年庆典晚会</a></li> </ul> </div>
3.封装爬取到的信息,并且建一个集合作为存储。
在子线程中去操作,当存储信息的集合“装好了以后”,通过Handler去发送消息到主线程,通知适配器绑定数据到ListView。
代码如下
public class MnustNews { public String url; public String title; public String date;}
new Thread(new Runnable() { @Override public void run() { try { Document doc = Jsoup.connect("http://www.mnust.cn/news.html").get(); Elements links = doc.select("div.newslist").select("li"); for (Element e:links){ Log.i("MYNEWS", "详情链接:" + e.select("a").attr("href")); Log.i("MYNEWS", "标题:" + e.select("a").attr("title")); Log.i("MYNEWS", "时间:" + e.select("span").text()); MnustNews news = new MnustNews(); news.url = URL + links.select("a").attr("href"); news.title = links.select("a").attr("title"); news.date = links.select("span").text(); newsList.add(news); } handler.sendEmptyMessage(666); Log.i("MYNEWS","NewsList大小:"+newsList.size()); }catch (IOException e){ e.printStackTrace(); } } }).start();
private Handler handler = new Handler(){ @Override public void handleMessage(Message msg) { if (msg.what==666){ listView.setAdapter(new MyAdapter(newsList,MainActivity.this)); } } };
4.最后可以通过重新ListView的item点击事件,打开对应的网页,有两种办法,一种是可以使用WebView,一种是使用浏览器的方式(这边使用的是后者)
Uri uri = Uri.parse(newsList.get(i).url); Intent intent = new Intent(Intent.ACTION_VIEW,uri); startActivity(intent);
以上就是Jsoup的基本使用了,其中要注意点是
1.在清单文件中添加网络权限
2.这个操作需要在子线程中去
Document doc = Jsoup.connect("http://www.mnust.cn/news.html").get();
当然了上面也可以不用Handler,可以使用AsnycTask。
关于难一点的是,因为没有怎么接触过html,所以关于解析方面还是有挺大的问题。
附上Jsoup的api地址
中文文档
官方文档
0 0
- 关于Jsoup的简单使用
- 关于JSoup的简单使用案
- Jsoup的简单使用
- Jsoup的简单使用
- 使用Jsoup作为简单的http客户端
- 简单的使用jsoup爬取图片
- 使用Jsoup 简单抓取页面的数据
- 关于Jsoup使用的一些小技巧
- 简单使用jsoup
- Jsoup简单使用
- 外国网站摘录的一个关于Jsoup的简单实例
- jsoup的简单介绍
- 关于jsoup的理解
- jsoup 简介及简单使用
- jsoup爬虫简单使用笔记
- 使用Jsoup实现简单的页面信息爬取
- 简单的网络爬虫实现(Jsoup使用)
- html&xml解析之jsoup和domj4的简单使用
- 对数据库字段操作的sql
- 安卓Shortcuts修改教程
- 120个微信小程序源码
- android studio 快捷键大全(第二弹)
- 怎么模拟手机的返回键功能
- 关于Jsoup的简单使用
- 在eclipse中使用maven
- [Java]Java对象引用以及对象赋值
- 浅谈Android AIDL
- springboot(十)定时任务
- Island Perimeter
- 【Maven】Maven的依赖范围
- 一个id引发的崩溃
- 蓝鸥iOS从零基础到精通就业-OC语言入门 集合