2012-02-28 85 views
0

我在Android開發的基本水平。從html獲取原始文本

我想從諸如「http://www.google.com」之類的頁面獲取文字。 (我將要使用的頁面將只有文本,所以沒有圖片或類似的東西) 所以,要清楚:我想讓我的應用程序中的頁面上寫入的文本等字符串。

我試過這個代碼,但即時通訊甚至不知道它是否做我想要的。

URL url = new URL(/*"http://www.google.com"); 
URLConnection connection = url.openConnection(); 
// Get the response  
BufferedReader rd = new BufferedReader(new InputStreamReader(connection.getInputStream())); 
String line = ""; 

我不能從它得到任何文字。我應該怎麼做?

+0

我不明白......你需要調用rd.readLine()或類似的東西。 – 2012-02-28 21:13:06

+0

[如何從android的html鏈接獲取頁面的html源代碼?](http://stackoverflow.com/questions/2423498/how-to-get-the-html-source-of-一個頁面,從-A-HTML鏈接功能於機器人) – jrummell 2012-02-28 21:26:34

回答

1

從你給你的示例代碼甚至沒有讀取請求的響應。我會得到的HTML下面的代碼

URL u = new URL("http://www.google.com"); 
URLConnection conn = u.openConnection(); 
BufferedReader in = new BufferedReader(
         new InputStreamReader(
          conn.getInputStream())); 
StringBuffer buffer = new StringBuffer(); 
String inputLine; 
while ((inputLine = in.readLine()) != null) 
    buffer.append(inputLine); 
in.close(); 
System.out.println(buffer.toString()); 

從那裏,你將需要字符串傳遞到某種HTML解析器,如果你想只有文字。從我聽說JTidy將是一個很好的庫,但我從來沒有使用任何Java的HTML解析庫。

0

這裏有一種方法:

public String scrape(String urlString) throws Exception { 
    URL url = new URL(urlString); 
    URLConnection connection = url.openConnection(); 
    BufferedReader reader = new BufferedReader(new InputStreamReader(
     connection.getInputStream())); 
    String line = null, data = ""; 

    while ((line = reader.readLine()) != null) { 
     data += line + "\n"; 
    } 

    return data; 
} 

Here is another.

1

你想提取HTML文件中的文本?您可以使用專門的工具,如Jericho HTML parser庫。我不確定它是否可以直接在Android應用程序中使用,但它是相當大的,但它是開源的,因此您可以使用它的代碼,並只採取您的任務所需的東西。