posts - 59, comments - 244, trackbacks - 0, articles - 0
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          在android中使用jsoup解析頁面鏈接

          Posted on 2011-03-14 01:35 penngo 閱讀(7185) 評論(4)  編輯  收藏 所屬分類: android

          本來想直接看sdk中的doc文檔來學習android的,結果發現里面的英文資料,學起來速度有點慢,遂買了本android的教程書回來學習,剛好看到一個書里面一個使用java.net.URL訪問網頁的例子,之前在做采集的時候,使用了html解析器jsoup來獲取頁面所有鏈接,順便試下把jsoup放進android中使用下,發現jsoup在android中能直接使用,測試例子代碼(本文只作了簡單測試):
          tt.jsp頁面

          <%@ page language="java" contentType="text/html; charset=UTF-8"
              pageEncoding
          ="UTF-8"
          %>
          <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
          <html>
          <head>
          <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          <title>Insert title here</title>
          </head>
          <body>
          測試連接
          <href="http://www.aygfsteel.com/pengo/">penngo的博客</a>
          <href="http://www.aygfsteel.com/">blogjava博客</a>
          </body>
          </html>


          Activity01.java

          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.widget.TextView;

          public class Activity01 extends Activity
          {
              @Override
              
          public void onCreate(Bundle savedInstanceState)
              
          {
                  
          super.onCreate(savedInstanceState);
                  
                  setContentView(R.layout.main);

                  TextView tv 
          = new TextView(this);
                  
                  String myString 
          = null;
                  StringBuffer sff 
          = new StringBuffer();
                  
          try
                  
          {
                      Document doc 
          = Jsoup.connect("http://192.168.64.9:8099/AgentJava/tt.jsp").get();
                      Elements links 
          = doc.select("a[href]");
                      
          for(Element link : links){
                          sff.append(link.attr(
          "abs:href")).append("  ").append(link.text()).append("\n");
                      }

                      myString 
          = sff.toString();
                  }

                  
          catch (Exception e)
                  
          {

                      myString 
          = e.getMessage();
                      e.printStackTrace();
                  }

                  
          /* 將信息設置到TextView */
                  tv.setText(myString);
                  
                  
          /* 將TextView顯示到屏幕上 */
                  
          this.setContentView(tv);
              }

          }

          運行效果:

          本文是在android2.2中開發測試,jsoup在android上使用和在jdk上使用是一樣,不用改變代碼。

          源碼

          評論

          # re: 在android中使用jsoup解析頁面鏈接[未登錄]  回復  更多評論   

          2011-06-22 22:47 by aaa
          在android 上解析HTML太慢了。SAX接口的能比較快點。
          tagsoup如何

          # re: 在android中使用jsoup解析頁面鏈接  回復  更多評論   

          2014-04-04 09:25 by llll
          這....直接這樣用不會報NetworkOnMainThreadException嗎?

          # re: 在android中使用jsoup解析頁面鏈接  回復  更多評論   

          2014-08-03 23:59 by 哈利路鴨
          我也是用jsoup 解析, 但是模擬器上運行調試都顯示正常,就是真機上安裝后運行,發現TextView 最后顯示不出來東西!!!!

          # re: 在android中使用jsoup解析頁面鏈接  回復  更多評論   

          2014-12-16 03:35 by backhoe
          @llll
          這可是2.2啊
          主站蜘蛛池模板: 绥中县| 中超| 海门市| 剑河县| 宁海县| 陆良县| 霍林郭勒市| 通山县| 乐业县| 蒲江县| 衡东县| 淅川县| 东明县| 孝义市| 神池县| 桑日县| 高台县| 曲靖市| 汪清县| 隆子县| 定南县| 时尚| 民县| 陇川县| 兴安盟| 青阳县| 万宁市| 日土县| 尉犁县| 阳原县| 克什克腾旗| 息烽县| 德格县| 惠来县| 莒南县| 清水河县| 鹤岗市| 九龙城区| 神池县| 威信县| 句容市|