如何使用Java从网页中读取文本?

我想从网页上阅读文字。 我不想获取网页的HTML代码。 我找到了这段代码:

try { // Create a URL for the desired page URL url = new URL("http://www.uefa.com/uefa/aboutuefa/organisation/congress/news/newsid=1772321.html#uefa+moving+with+tide+history"); // Read all the text returned by the server BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream())); String str; while ((str = in.readLine()) != null) { str = in.readLine().toString(); System.out.println(str); // str is one line of text; readLine() strips the newline character(s) } in.close(); } catch (MalformedURLException e) { } catch (IOException e) { } 

但是这段代码给了我网页的HTML代码。 我想在此页面中获取整个文本。 我怎么能用Java做到这一点?

你可能想看看jsoup :

 String html = "

An example link.

"; Document doc = Jsoup.parse(html); String text = doc.body().text(); // "An example link"

此示例是其网站上的一个摘录。

使用JSoup 。

您将能够使用css样式选择器解析内容。

在这个例子中你可以试试

 Document doc = Jsoup.connect("http://www.uefa.com/uefa/aboutuefa/organisation/congress/news/newsid=1772321.html#uefa+moving+with+tide+history").get(); String textContents = doc.select(".newsText").first().text(); 

您必须使用当前代码获取内容,然后解析它并查找包含所需文本的标记。 萨克斯解析器非常适合这项工作。

或者,如果它不是您想要的特定文本,只需删除所有标记,这样您就只剩下文本了。 我想你可以使用正则表达式。

你也可以使用HtmlCleaner jar。 以下是代码。

 HtmlCleaner cleaner = new HtmlCleaner(); TagNode node = cleaner.clean( url ); System.out.println( node.getText().toString() );