我处于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 = "";
无论如何我无法从中得到任何文字。我该怎么做?
答案 0 :(得分: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解析库。
答案 1 :(得分:1)
您想从HTML文件中提取文字吗?您可以使用Jericho HTML parser库等专用工具。我不确定它是否可以在Android应用程序中直接使用,它非常大,但它是开源的,因此您可以利用其代码并仅采用您的任务所需的内容。
答案 2 :(得分: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;
}