【问题标题】:Get raw text from html从 html 获取原始文本
【发布时间】:2012-03-18 09:13:30
【问题描述】:

我的 Android 开发水平相当基础。

我想从诸如“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 = "";

无论如何,我无法从中获取任何文本。我该怎么做?

【问题讨论】:

标签: java android html


【解决方案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 解析库。

【讨论】:

    【解决方案2】:

    这是一种方法:

    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.

    【讨论】:

      【解决方案3】:

      您想从 HTML 文件中提取文本?您可以使用专门的工具,例如 Jericho HTML parser 库。我不确定它是否可以直接在 Android 应用程序中使用,它很大,但它是开源的,因此您可以使用它的代码并只获取您的任务所需的内容。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-08-22
        • 2012-03-05
        • 2017-10-09
        • 1970-01-01
        • 1970-01-01
        • 2013-07-17
        • 2017-07-21
        相关资源
        最近更新 更多