我正在使用Boilerpipe从网址中提取文字,使用以下代码:
URL url = new URL("http://www.example.com/some-location/index.html");
String text = ArticleExtractor.INSTANCE.getText(url);
String text
只包含html页面的文本,但我需要从中提取整个html代码。
是否有人使用过此库并知道如何提取HTML代码?
您可以查看demo page以获取有关该库的更多信息。
答案 0 :(得分:10)
对于像这样简单的事情,你真的不需要外部库:
URL url = new URL("http://www.google.com");
InputStream is = (InputStream) url.getContent();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
String line = null;
StringBuffer sb = new StringBuffer();
while((line = br.readLine()) != null){
sb.append(line);
}
String htmlContent = sb.toString();
答案 1 :(得分:1)
只需使用KeepEverythingExtractor
代替ArticleExtractor
。
但这是错误的工作使用错误的工具。你想要的只是下载URL的HTML内容(对吗?),而不是提取内容。那么为什么要使用内容提取器?
答案 2 :(得分:1)
使用Java 7和Scanner技巧,您可以执行以下操作:
public static String toHtmlString(URL url) throws IOException {
Objects.requireNonNull(url, "The url cannot be null.");
try (InputStream is = url.openStream(); Scanner sc = new Scanner(is)) {
sc.useDelimiter("\\A");
if (sc.hasNext()) {
return sc.next();
} else {
return null; // or empty
}
}
}