1. 程式人生 > >Android利用Jsoup解析html 開發網站客戶端小記。

Android利用Jsoup解析html 開發網站客戶端小記。

這些天業餘時間比較多,閒來無事,想起了以前看過開發任意網站客戶端的一篇文章,就是利用jsoup解析網站網頁,通過標籤獲取想要的內容。好了廢話不多說,用到的工具為 jsoup-1.7.2.jar包,具體jsoup的相關文件,請去這邊看http://jsoup.org/,這裡有全部Api可以查詢。

這裡解析的網站是一個食譜網站,首先解析的是大類欄目標籤。

如果你使用過jquery那麼 ,接下來的事情就小菜一碟了,我們按F12進入瀏覽器的開發者模式,去分析當前html頁面的結構,如下圖:

每個<li></li>標籤裡面的值就是我們需要的,接下來我們需要非同步去獲取網頁資訊,首先建立一個連線,生成一個Document物件,取得標題所在<ul>的id值,通過select過濾。

Elements divs = content.select("#siteNav");

然後通過Jsoup去解析上圖的標籤,通過迴圈取出標題欄還有子目錄的超連結,插入資料庫,超連結用作展開子目錄的網頁地址,像這種網站大的標題結構一般是不會改變的,可以留作快取,而不用每次進入總要載入解析。

//非同步獲取資訊
    class Loadhtml extends AsyncTask<String, String, String>
    {
        ProgressDialog bar;
        Document doc;
        @Override
        
protected String doInBackground(String... params) { // TODO Auto-generated method stub try { doc = Jsoup.connect(Constans.NetAddress).timeout(5000).post(); Document content = Jsoup.parse(doc.toString()); Elements divs = content.select("#siteNav"); Document divcontions
= Jsoup.parse(divs.toString()); Elements element = divcontions.getElementsByTag("li"); Log.d("element", element.toString()); for(Element links : element) { String title = links.getElementsByTag("a").text();
String link
= links.select("a").attr("href").replace("/", "").trim(); String url = Constans.NetAddress+link; ContentValues values = new ContentValues(); values.put("Title", title); values.put("Url", url); usedatabase.insert("Cach", values); } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return null; } @Override protected void onPostExecute(String result) { // TODO Auto-generated method stub super.onPostExecute(result); // Log.d("doc", doc.toString().trim()); bar.dismiss(); ListItemAdapter adapter = new ListItemAdapter(context, usedatabase.getlist()); listmenu.setAdapter(adapter); } @Override protected void onPreExecute() { // TODO Auto-generated method stub super.onPreExecute(); bar = new ProgressDialog(context); bar.setMessage("正在載入資料····"); bar.setIndeterminate(false); bar.setCancelable(false); bar.show(); } }

最終手機斷顯示

今天就總結到這裡,下次具體講解析完資料後,通過SQLITE儲存,還有每個標題的子目錄展開等。

相關推薦

Android利用Jsoup解析html 開發網站客戶小記

這些天業餘時間比較多,閒來無事,想起了以前看過開發任意網站客戶端的一篇文章,就是利用jsoup解析網站網頁,通過標籤獲取想要的內容。好了廢話不多說,用到的工具為 jsoup-1.7.2.jar包,具體jsoup的相關文件,請去這邊看http://jsoup.org/,這裡有全部Api可以查詢。 這裡解析的網

Android利用jsoup解析html頁面

學習jsoup :jsoup學習網站 Android 中使用: 新增依賴 implementation 'org.jsoup:jsoup:1.10.1' 直接上程式碼: package com.loaderman.jsoupdemo; import android.

利用jsoup解析html

1、jsoup簡介 jsoup 是一款 Java的HTML解析器,可直接解析某個URL地址、HTML文字內容。它提供了一套非常省力的API,可通過DOM,CSS以及類似於jQuery的操作方法來取出和操作資料。jsoup 的主要功能如下: (1)從一個 UR

關於利用Jsoup解析HTML中 ;變成非傳統空格或亂碼問題解決方法

在寫爬蟲的時候很多時候會遇到這種問題:HTML中原始碼顯示&nbsp;沒問題,但是利用Jsoup的text()方法獲取的文字就會出現問題,一般情況是&nbsp;變成非傳統空格或者亂碼,這樣在解析的時候想切分字串會無法成功。因為&nbsp;是ISO-8

手把手教學 Androidjsoup解析html

1.jsoup介紹 很多時候,我們需要從各種網頁上面抓取資料,而jsoup 是一款Java 的HTML解析器,可直接解析某個URL地址、HTML文字內容。它提供了一套非常省力的API,可通過DOM,CSS以及類似於jQuery的操作方法來取出和操作資料。 2.使用場景 下面是一張關於美食的截圖,可以留意到

Jsoup開發網站客戶第二篇,圖片輪播,ScrollView相容ListView

最近一段日子忙的焦頭爛額,程式碼重構,新專案編碼,導致jsoup開發網站客戶端也沒時間繼續下去,只能利用晚上時間去研究了。今天實現美食網首頁圖片輪播效果,網站效果圖跟Android客戶端實現如圖: 從瀏覽器開發者模式可以看到這個輪播圖片效果的圖片地址以及html連線 用節點解析出包含圖片url

Android通過Jsoup解析Html原始碼

WebViewClient的作用就是幫助WebView處理各種通知、請求事件的,onPageFinished顧名思義在頁面載入完成後進行的操作,通過javascript語法獲取的內容,通過local_obj呼叫InJavaScriptLocalObj中的showSource()方法

Java使用Jsoup解析Html中標籤,新增屬性

設定Html中標籤屬性的值 問題 為java生成的html檔案mate標籤新增屬性charset=”utf-8”。 方法 可以使用屬性設定方法 Element.attr(String key, String value), 和 Elements.at

我的Android筆記(八)—— 使用Jsoup解析Html

想要做一個看新聞的應用,類似Cnbeta客戶端的東西。大致思路如下:根據連結獲取新聞列表頁的html程式碼,然後解析,找到所有的新聞標題和新聞連結用listView顯示,當點選ListView的Ite

通過使用jsoup解析html,繪畫表格生成execl文件

num group wid 字符 for format 格式 colspan tables 1.獲取文件或者字符設置繪畫表格字符編碼 //得到Document並且設置編碼格式 public static Document getDoc(String fileNam

【轉載儲存】Jsoup解析html常用方法

首先我們要清楚 class的繼承關係 Document 繼承於  Element  繼承於 Node  繼承於 Object 首先 我們先研究一下 Element 中的函式作用: 01 addClass(String className)  

使用JSOUP解析HTML文件

 這篇文章主要介紹了Jsoup如何解析一個HTML文件、從檔案載入文件、從URL載入Document等方法,對Jsoup常用方法做了詳細講解,最近提供了一個示例供大家參考 使用DOM方法來遍歷一個文件 從元素抽取屬性,文字和HTML 獲取所有連結 解析和遍歷一個H

Netty開發redis客戶,Netty傳送redis命令,netty解析redis訊息

Netty開發redis客戶端,Netty傳送redis命令,netty解析redis訊息, netty redis ,redis RESP協議。redis客戶端,netty redis協議 我們可以使用redis-cli這個客戶端來操作redis,也可以使用window的命令列telnet連線redis。

Jsoup解析HTML頁面資料的工具

原文地址!尊重原創!   介紹:   GitHub原始碼 點選檢視 程式碼jar包 點選下載 Jsoup是一款比較好的Java版HTML解析器。可直接解析某個URL地址、HTML文字內容。它提供了一套非常省力的API,可通過DOM,CS

爬蟲基礎之Jsoup解析HTML

Jsoup的Maven座標 <dependency> <groupId>org.jsoup</groupId> <artifactId>jsoup</artifactId> <version>1

低價高可靠的短視訊去水印解析API,搞客戶開發的童鞋們,拿去不謝!

本文適合這些人閱讀:iOS開發者、Android開發者、小程式開發人員、H5開發人員等客戶端開發人員。 今天要給客戶端開發者們介紹的一個介面是iiiLab提供的視訊去水印解析介面,介面特點: 1. 通用介面支援解析抖音、快手、火山、今日頭條、西瓜視訊、微博、秒拍、小咖秀、晃咖、微視、美拍

Android-使用者登陸的例子(伺服器開發客戶實現)

1.回顧        上篇實現總結了App介面開發課程講解的內容 2.此篇      這篇將總結app介面開發裡的 使用者登入的例子! 3.基本步驟     (1)服務端實現 登陸介面 開發     (2)實現 json 和xml資料封裝類     (3)編寫 介面開

jsoup開發網頁客戶3

  這個系列好久沒更新,最近好忙,老大說未來是Html5的,所以最近一直學習前端以及Html5的一些東西。Android5.0的誕生,讓我們眼前一亮,獨特的Material風格更是吸引了無數人。   話說不學習學習就要落伍了,剛好自己一直很喜歡看這個網站的東西 http://www.techug.com/,

使用Jsoup解析Html == TextView顯示html圖片的方法

想要做一個看新聞的應用,類似Cnbeta客戶端的東西。大致思路如下:根據連結獲取新聞列表頁的html程式碼,然後解析,找到所有的新聞標題和新聞連結用listView顯示,當點選ListView的Item再載入相應的新聞內容。 其中獲取html程式碼,可以使用如下程式碼

Jsoup學習筆記2:Jsoup解析HTML程式碼標籤與屬性

接著上一篇的Jsoup學習筆記1繼續學習,雖然是轉載自上面連結的文章,但是程式做了一點改動,方便自己以後的檢視 package com.daxiang.myjsoup; import org.jsoup.Jsoup; import org.jsoup.nodes.D