写点什么

Android Jsoup:实现 HTML 解析和 Epub 解析,论程序员成长的正确姿势

用户头像
Android架构
关注
发布于: 1 小时前

.timeout(3000).post();


} catch (IOException e) {


e.printStackTrace();


}


// 若根目录有个 index.html 文件,否则程序会 crash


File input = new File(Environment.getExternalStorageDirectory()


  • "/index.html");


try {


Document doc4 = Jsoup.parse(input, "utf-8", "http://baidu.com");


} catch (IOException e) {


e.printStackTrace();


}


// ../baidu.png -> http://baidu.com/baidu.png


}


}

示例 2:使用 Jsoup 解析 HTML 新闻列表

新闻地址是:http://mobile.csdn.net/


新闻网页的关键部分截图


<div class="unit">


<h1><a href="http://www.csdn.net/article/2015-11-02/2826103-jinjiang-beecloud" target="_blank">《近匠》BeeCloud 创始人黄君贤:三行代码集成支付的技术实现</a></h1>


<h4>发表于<span class="ago">2015-11-03 18:18</span>|<span class="view_time">4471 次阅读</span>|<span class="num_recom">11 条评论</span></h4>


<dl>


<dt>


<a href="http://www.csdn.net/article/2015-11-02/2826103-jinjiang-beecloud" target="_blank"><img src="http://img.ptcms.csdn.net/article/201511/03/5638562e9dde2_thumb.jpg" alt="" /></a>


</dt>


<dd>


《近匠》第 106 期:成立于 2014 年的 BeeCloud 专注于支付云服务,以“让支付更简单”为理念,为开发者及企业提供一站式支付解决方案。其推出的“秒支付 Button”无需 SDK,三行代码即可一键接入支付功能。


</dd>


</dl>


<div class="tag">


<a href="http://www.csdn.net/tag/%E8%BF%91%E5%8C%A0/news" target="_blank">近匠</a>


<a href="http://www.csdn.net/tag/beecloud/news" target="_blank">BeeCloud</a>


<a href="http://www.csdn.net/tag/google/news" target="_blank">Google</a>


<a href="http://www.csdn.net/tag/%E9%BB%84%E5%90%9B%E8%B4%A4/news" target="_blank">黄君贤</a>


<a href="http://www.csdn.net/tag/%E6%94%AF%E4%BB%98/news" target="_blank">支付</a>


<a href="http://www.csdn.net/tag/sdk/news" target="_blank">SDK</a>


</div>


</div>


<div class="unit">


<h1><a href="http://www.csdn.net/article/2015-11-03/2826114" target="_blank">专访贾磊:百度语音实现技术创新,打破汉语语音识别领域壁垒</a></h1>


<h4>发表于<span class="ago">2015-11-03 14:58</span>|<span class="view_time">186 次阅读</span>|<span class="num_recom">1 条评论</span></h4>


<dl>


<dt>


<a href="http://www.csdn.net/article/2015-11-03/2826114" target="_blank"><img src="http://img.ptcms.csdn.net/article/201511/03/563858fcac8a2_thumb.jpg" alt="" /></a>


</dt>


<dd>


语音识别技术正处于大规模爆发边缘,更多终端会进入语音操作时代。近日百度在汉语语音识别方面获得重大理论和产品突破,CSDN 对百度语音技术部负责人贾磊进行了专访,他分享了这次技术突破的理论基础和学术意义。


</dd>


</dl>


<div class="tag">


<a href="http://www.csdn.net/tag/%E5%A4%A7%E6%95%B0%E6%8D%AE/news" target="_blank">大数据</a>


<a href="http://www.csdn.net/tag/%E8%AF%AD%E9%9F%B3%E8%AF%86%E5%88%AB/news" target="_blank">语音识别</a>


<a href="http://www.csdn.net/tag/%E4%B8%93%E8%AE%BF/news" target="_blank">专访</a>


<a href="http://www.csdn.net/tag/%E7%99%BE%E5%BA%A6/news" target="_blank">百度</a>


<a href="http://www.csdn.net/tag/%E6%8A%80%E6%9C%AF/news" target="_blank">技术</a>


<a href="http://www.csdn.net/tag/%E8%AF%AD%E9%9F%B3%E6%90%9C%E7%B4%A2/news" target="_blank">语音搜索</a>


<a href="http://www.csdn.net/tag/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0/news" target="_blank">机器学习</a>


<a href="http://www.csdn.net/tag/%E4%BA%BA%E6%9C%BA%E4%BA%A4%E4%BA%92/news" target="_blank">人机交互</a>


<a href="http://www.csdn.net/tag/%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0/news" target="_blank">深度学习</a>


</div>


</div>


<div class="unit">


<h1><a href="http://www.csdn.net/article/2015-11-03/2826110-CTO" target="_blank">【CTO 讲堂】Growth Hacking 背后,数据分析平台的架构调整</a></h1>


<h4>发表于<span class="ago">2015-11-03 11:05</span>|<span class="view_time">949 次阅读</span>|<span class="num_recom">6 条评论</span></h4>


<dl>


<dt>


<a href="http://www.csdn.net/article/2015-11-03/2826110-CTO" target="_blank"><img src="http://img.ptcms.csdn.net/article/201511/03/56382497a487e_thumb.jpg" alt="" /></a>


</dt>


<dd>


Growth Hacking 概念越来越火,很多创业团队把这个为 Facebook、Airbnb 等公司带来巨大用户增量的概念奉为圣经。与数据分析的关系是怎样的?现有的数据分析架构为什么不能支持需求?本文为诸葛 io 创始人 &CEO 孔淼的分享。


</dd>


</dl>


<div class="tag">


<a href="http://www.csdn.net/tag/cto%E4%BF%B1%E4%B9%90%E9%83%A8/news" target="_blank">CTO 俱乐部</a>


<a href="http://www.csdn.net/tag/cto/news" target="_blank">CTO</a>


<a href="http://www.csdn.net/tag/cto%E8%AE%B2%E5%A0%82/news" target="_blank">CTO 讲堂</a>


<a href=


《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》
浏览器打开:qq.cn.hn/FTe 免费领取
复制代码


"http://www.csdn.net/tag/growth%20hacking/news" target="_blank">Growth Hacking</a>


<a href="http://www.csdn.net/tag/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90/news" target="_blank">数据分析</a>


</div>


</div>


<div class="unit">


...


分析可知,每个条新闻 item 都在下面这个标签中


<div class="unit"> ... </div>


在安卓中解析的代码如下:


public class MainActivity extends Activity {


private String url = "http://mobile.csdn.net/";


@Override


protected void onCreate(Bundle savedInstanceState) {


super.onCreate(savedInstanceState);


setContentView(R.layout.activity_main);


new Thread(new Runnable() {


@Override


public void run() {


parseHtml();


}


}).start();


}


private void parseHtml() {


try {


Document doc = Jsoup.connect(url).get();


Elements elements = doc.select("div.unit");


for (Element ele : elements) {


String title = ele.getElementsByTag("h1").first().text();


String href = ele.getElementsByTag("h1").first()


.getElementsByTag("a").first().attr("href");


// logcat 中打印出“新闻标题+链接地址”


Log.i("info", title + ":" + href);


}


} catch (IOException e) {


e.printStackTrace();


}


}


}

用户头像

Android架构

关注

还未添加个人签名 2021.10.31 加入

还未添加个人简介

评论

发布
暂无评论
Android Jsoup:实现HTML解析和Epub解析,论程序员成长的正确姿势