Android開發(fā)之利用jsoup解析HTML頁面的方法
本文實例講述了Android利用jsoup解析HTML頁面的方法。分享給大家供大家參考,具體如下:
這節(jié)主要是講解jsoup解析HTML頁面。由于在android開發(fā)過程中,不可避免的涉及到web頁面的抓取,解析,展示等等,所以,在這里我主要展示下利用jsoup jar包來抓取cnbeta.com網(wǎng)站的話題分類的實例。
下面是主要的代碼,由于使用及其簡單,我這里就不再多說了:
package com.android.web; import java.io.BufferedInputStream; import java.io.IOException; import java.io.InputStream; import java.net.MalformedURLException; import java.net.URL; import java.net.URLConnection; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import org.apache.http.util.ByteArrayBuffer; import org.apache.http.util.EncodingUtils; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; import org.jsoup.select.Elements; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.ListView; import android.widget.SimpleAdapter; public class _GetWebResoureActivity extends Activity { Document doc; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); findViewById(R.id.button1).setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { load(); } }); } protected void load() { try { doc = Jsoup.parse(new URL("http://www.cnbeta.com"), 5000); } catch (MalformedURLException e1) { e1.printStackTrace(); } catch (IOException e1) { e1.printStackTrace(); } List<Map<String, String>> list = new ArrayList<Map<String, String>>(); Elements es = doc.getElementsByClass("main_navi"); for (Element e : es) { Map<String, String> map = new HashMap<String, String>(); map.put("title", e.getElementsByTag("a").text()); map.put("href", "http://www.cnbeta.com" + e.getElementsByTag("a").attr("href")); list.add(map); } ListView listView = (ListView) findViewById(R.id.listView1); listView.setAdapter(new SimpleAdapter(this, list, android.R.layout.simple_list_item_2, new String[] { "title","href" }, new int[] { android.R.id.text1,android.R.id.text2 })); } /** * @param urlString * @return */ public String getHtmlString(String urlString) { try { URL url = null; url = new URL(urlString); URLConnection ucon = null; ucon = url.openConnection(); InputStream instr = null; 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 ""; } } }
注意代碼:Elements es = doc.getElementsByClass("main_navi");一定要找對位置,才能得到正確的結(jié)果。下面就是主要的預(yù)覽效果:
更多關(guān)于Android相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Android調(diào)試技巧與常見問題解決方法匯總》、《Android開發(fā)入門與進階教程》、《Android多媒體操作技巧匯總(音頻,視頻,錄音等)》、《Android基本組件用法總結(jié)》、《Android視圖View技巧總結(jié)》、《Android布局layout技巧總結(jié)》及《Android控件用法總結(jié)》
希望本文所述對大家Android程序設(shè)計有所幫助。
- 通過Html網(wǎng)頁調(diào)用本地安卓(android)app程序代碼
- android textview 顯示html方法解析
- Android的TextView與Html相結(jié)合的具體方法
- android教程之textview解析帶圖片的html示例
- 如何在android中使用html作布局文件
- Android TextView顯示html樣式的文字
- Android TextView顯示Html類解析的網(wǎng)頁和圖片及自定義標(biāo)簽用法示例
- Android實現(xiàn)TextView顯示HTML加圖片的方法
- Android UI使用HTML布局方法實例
- Android編程獲取網(wǎng)址HTML代碼的方法
相關(guān)文章
Android實現(xiàn)手勢滑動多點觸摸放大縮小圖片效果
這篇文章主要介紹了Android實現(xiàn)手勢滑動多點觸摸放大縮小圖片效果的相關(guān)資料,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-02-02Flutter實現(xiàn)增強版的頁面懸浮按鈕的示例代碼
Flutter?自帶的?FloatingActionButton?為我們提供了一個懸浮在頂部的按鈕,這個按鈕始終在最頂層,因此可以做一些快捷的操作。本文就來和大家詳細(xì)聊聊2023-01-01Android EditText實現(xiàn)關(guān)鍵詞批量搜索示例
本篇文章主要介紹了Android EditText實現(xiàn)關(guān)鍵詞批量搜索示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-02-02monkeyrunner之安卓開發(fā)環(huán)境搭建教程(1)
這篇文章主要介紹了monkeyrunner之安卓開發(fā)環(huán)境搭建教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-11-11Android中Market的Loading效果實現(xiàn)方法
這篇文章主要介紹了Android中Market的Loading效果實現(xiàn)方法,較為詳細(xì)的分析了Android中l(wèi)oading效果的相關(guān)布局及功能實現(xiàn)技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-10-10android 仿微信demo——微信消息界面實現(xiàn)(移動端)
本系列文章主要介紹了微信小程序-閱讀小程序?qū)嵗╠emo),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧,希望能給你們提供幫助2021-06-06