我正在寻找一种使用jdk或其他库从网页(最初是html)中提取文本的方法。请帮忙
感谢
答案 0 :(得分:12)
如果可能,请使用HTML parser;有很多可用于Java。
或者你可以像许多人一样使用正则表达式。但是,除非您进行非常简单的处理,否则这通常是不可取的。
文字提取:
标签剥离:
答案 1 :(得分:12)
使用jsoup。这是目前最优雅的屏幕抓取库。
URL url = new URL("http://example.com/");
Document doc = Jsoup.parse(url, 3*1000);
String title = doc.title();
我喜欢它的CSS selector syntax。
答案 2 :(得分:2)
这是一个很好地包装这些细节的简短方法(基于java.util.Scanner
):
public static String get(String url) throws Exception {
StringBuilder sb = new StringBuilder();
for(Scanner sc = new Scanner(new URL(url).openStream()); sc.hasNext(); )
sb.append(sc.nextLine()).append('\n');
return sb.toString();
}
这就是它的用法:
public static void main(String[] args) throws Exception {
System.out.println(get("http://www.yahoo.com"));
}