繁体   English   中英

从html获取原始文本

[英]Get raw text from html

我在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 = "";

无论如何,我无法从中得到任何文字。 我该怎么做?

从您提供的示例代码中,您甚至没有从请求中读取响应。 我会用以下代码获取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解析库。

您想从HTML文件中提取文本吗? 您可以使用专门的工具,例如Jericho HTML解析器库。 我不确定它是否可以直接在Android应用程序中使用,它非常大,但它是开源的,因此您可以利用其代码并仅采取您的任务所需的内容。

这是一种方式:

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;
}

这是另一个。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM