如何从网页中提取所有文本?

时间:2013-10-09 08:49:57

标签: java html dom web jsoup

我正在使用JSoup库来提取网页中的文本。以下是我的代码

 Document doc;

try {
 URL url = new URL(text);


 doc = Jsoup.parse(url, 70000);

 Elements paragraphs = doc.select("p");
 for(Element p : paragraphs)
 {

    textField.append(p.text());
    textField.append("\n");
 }
} 
catch (Exception ex)
{

   ex.printStackTrace();

} 

在这里,我只能从“p”标签中获取文字。但我需要页面中的所有文字。我该怎么做?这可能是通过循环遍历节点,但我刚开始使用JSoup

3 个答案:

答案 0 :(得分:1)

试试这个:

String text = Jsoup.parse(new URL("https://www.google.com"), 10000).text();
System.out.println(text);

这里,10000是以毫秒为单位,指的是超时。

答案 1 :(得分:0)

您可能希望使用Boilerpipe,因为您不需要HTML解析,而只需要文本提取。这应该更快,耗费更少的CPU。

示例:

URL url = new URL("http://www.example.com/some-location/index.html");
// NOTE: Use ArticleExtractor unless DefaultExtractor gives better results for you
String text = ArticleExtractor.INSTANCE.getText(url);

取自:https://code.google.com/p/boilerpipe/wiki/QuickStart

答案 2 :(得分:0)

也许完全不同的方法。我不确定你到底在做什么,因此我不确切知道你需要什么。但是你可以抓住整个网页的整个原始资源。然后使用regexp删除所有html标记。我做了类似的事情(虽然在php中),用于文本到代码比率工具一次。