在Java代码中,如何提取随机html页面的文本?

时间:2011-10-27 18:08:12

标签: java jsoup

我这样解决了:

String url = ("http://www.repubblica.it/economia/finanza/2011/10/27/news/la_fine_dell_incertezza_solleva_le_azioni_bancarie_in_borsa_alle_italiane_mancano_15_miliardi_di_capitale_met_di_unicredit-23967707/");

Document doc = Jsoup.parse(new URL(url), 2000);

Elements body = doc.select("body");

String s=body.text();

System.out.println(s);

我还有另一个问题。我只想要没有标题的主要文本。谁能帮帮我?


我需要一种从网站中提取文本的算法。我希望这个文本在标签,类等方面是干净的,我希望这个算法可以应用于任何网页。

例如this page

我需要正文:

  

米兰 - Il tanto明确回应sui fabbisogni di patrimonio delle   maggiori bancheeuropeeèarrivato。 L'Eba(l'Autoritàdicontrollo   bancaria europea)ha stabilitolaadmandità,entro giugno 2012,di   ricapitalizzare per ben 106,5 miliardi di euro per i 30 gruppi europei   piùimportanti。隋70 gruppi考虑,invece,il赤字   patrimonialeèdi160 miliard ...............

this page

我需要正文:

  

TORINO - Effetto Chrysler sui conti Fiat。 Il Lingotto archivia il   在crescita的terzo trimestre con utili a 17,6 miliardi(8,4 nello   stesso trimestre 2010)。 Piùcheytriplicato l'utile della gestione   ordinaria che passa da 256 a 851 milioni。由于terzi arrivano da   底特律车................

由于

2 个答案:

答案 0 :(得分:2)

试用boilerplate库。

另一种选择是探索Apache Tika,它将以有意义的方式为内容编制索引。

请注意,定义“主要文本”很大程度上是不可能的。如果您了解该网站,则可以尝试了解其模板并做出一些假设。在随机网站上进行此操作很困难,这就像samppipe / tika之类的东西发挥作用。

答案 1 :(得分:2)

我刚刚发现Jsoup,它看起来非常适合你想要的东西

似乎这些行中的某些内容将从“div_Id”中提取该文本

Document doc = Jsoup.connect("http://www.repubblica.it/economia/finanza/2011/10/27/news/la_fine_dell_incertezza_solleva_le_azioni_bancarie_in_borsa_alle_italiane_mancano_15_miliardi_di_capitale_met_di_unicredit-23967707/").get();
String text = doc.body().id("div_Id").text()

我不是这个lib的专家,但确实比httpCommonsClient更容易