前几天无意看到jsoup这个东西,刚开始看成了json以为又是一个解析json的框架,一查,哇塞!原来是个抓取网络数据的jar,类似于网络爬虫。以前总想自己写点东西,但是苦于没有数据,服务端不懂,现在好了,有了jsoup这个东西,可以抓取任何网站的数据了(貌似是违法的。。。)
今天特意学习了下,感觉挺好用的,这里记录下:
// 这里抓取csdn的数据 下面的代码涉及到html基础,万幸大学时学了点html // 下面是链接的源代码,我只截取需要的一部分,有点乱,大家可以自己去链接地址查看源代码
<div class="news_list" id="news_list">
<dl>
<dt>2015-11-23</dt>
<dd>
<ul>
<li>
<a target="_blank" href="http://www.csdn.net/article/2015-11-23/2826306" title='SDCC2015微信开发论坛:看微信生态如何撬动千亿级企业移动市场?'>SDCC2015微信开发论坛:看微信生态如何撬动千亿级企业移动市场?</a>
</li>
<li>
<a target="_blank" href="http://www.csdn.net/article/2015-11-21/2826289" title='苹果正在怎样毁掉设计之名'>苹果正在怎样毁掉设计之名</a>
</li>
<li>
<a target="_blank" href="http://www.csdn.net/article/2015-11-23/2826303" title='专访小米欧阳辰:深度揭秘小米广告平台的构建、底层模块和坑'>专访小米欧阳辰:深度揭秘小米广告平台的构建、底层模块和坑</a>
</li>
<li>
<a target="_blank" href="http://huiyi.csdn.net/activity/product/goods_list?project_id=2660" title='【技术公开课】数据可视化与 D3.js'>【技术公开课】数据可视化与 D3.js</a>
</li>
<li>
<a target="_blank" href="http://www.csdn.net/article/2015-11-23/2826299?reload=1" title='《近匠》Udesk肖立鹏:产品迭代与需求掌控是业务型SaaS产品核心竞争力'>《近匠》Udesk肖立鹏:产品迭代与需求掌控是业务型SaaS产品核心竞争力</a>
</li>
</ul>
</dd>
</dl>
public static final String NEWS_LIST_URL = "http://www.csdn.net/headlines.html";Runnable run = new Runnable() { @Override public void run() { Document doc = null; try { doc = Jsoup.connect(NEWS_LIST_URL).timeout(5000).get(); // 连接到csdn并获取数据 Log.e(TAG, "doc...." + doc); } catch (IOException e) { e.printStackTrace(); } Element masthead = doc.select("div.news_list").first(); // 获取第一个div层class = news_list的数据 Elements dlElements = masthead.select("dl");//获取第一个news_list下所有dl的标签 for (int i = 0; i < dlElements.size(); i++) { Element childElment = dlElements.get(i); // 获取每个dl标签 Elements dtElement = childElment.select("dt"); String time = dtElement.text(); Log.e(TAG, "time is ...." + time); Elements aElements = childElment.select("a"); for (int j = 0; j < aElements.size(); j++) { Element elment = aElements.get(j); String url = elment.attr("href"); String title = elment.attr("title"); Log.e(TAG,"URL..."+url+"...."+title); } } } }; new Thread(run).start(); 看着也很简单,下面我看的资料,觉得挺不错的,这里推荐大家学习时看看 http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2014/1226/2218.html