在android中使用jsoup解析頁面鏈接 – Android移動開發技術文章_手機開發 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>
測試連接
<a href=”penngo>http://www.blogjava.net/pengo/”>penngo的博客</a>
<a href=”blogjava>http://www.blogjava.net/”>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(“Java/tt.jsp”).get>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(”
“);
            }
            myString = sff.toString();
        }
        catch (Exception e)
        {


            myString = e.getMessage();
            e.printStackTrace();
        }
        /**//* 將信息設置到TextView */
        tv.setText(myString);
       
        /**//* 將TextView顯示到屏幕上 */
        this.setContentView(tv);
    }
}
運行效果:



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



題外話:前個星期參加瞭多玩的招聘,未收到下一輪面試的回復(隻好繼續努力)。。。。。。今天也去參加網易的招聘瞭,坐車時,有點不順利,大概一小時的車程,結果塞車害我坐瞭2小時,去到時,差不多是最後一個瞭。交瞭簡歷,開始等候,坐一個小時的板凳,終於輪到我(這時候等候廳基本沒什麼人瞭。。。),面試官匆匆的問瞭幾個問題,就讓我進去筆試瞭(題目就不說瞭,居然不用考linux,其實俺目前隻會一點點,這方面有點杯具,一直在window平臺上開發,少接觸到linux,但很多公司的招聘都會有)。哈哈,我也匆匆的答完題目,回傢吃飯。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。