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;@Overrideprotected String doInBackground(String... params) {// TODO Auto-generated method stubtry {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;}@Overrideprotected void onPostExecute(String result) {// TODO Auto-generated method stubsuper.onPostExecute(result); // Log.d("doc", doc.toString().trim()); bar.dismiss();ListItemAdapter adapter = new ListItemAdapter(context, usedatabase.getlist());listmenu.setAdapter(adapter);}@Overrideprotected void onPreExecute() {// TODO Auto-generated method stubsuper.onPreExecute();bar = new ProgressDialog(context);bar.setMessage("正在加載數據····");bar.setIndeterminate(false);bar.setCancelable(false);bar.show();}}
最終手機斷顯示
今天就總結到這里,下次具體講解析完數據后,通過SQLITE存儲,還有每個標題的子目錄展開等。
?
轉載于:https://www.cnblogs.com/LIANQQ/p/3460275.html
總結
以上是生活随笔為你收集整理的Android利用Jsoup解析html 开发网站客户端小记。的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: sql批量修改字段内容的语句-SQL技巧
- 下一篇: Samba nsswitch/pam_w
