我想从网页上阅读文字。我不想获取网页的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做到这一点?
答案 0 :(得分:15)
您可能需要查看jsoup:
String html = "<p>An <a href='http://example.com/'><b>example</b></a> link.</p>";
Document doc = Jsoup.parse(html);
String text = doc.body().text(); // "An example link"
此示例是其网站上的一个摘录。
答案 1 :(得分:4)
使用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();
答案 2 :(得分:0)
您必须获取当前代码所获得的内容,然后解析它并查找包含所需文本的标记。萨克斯解析器非常适合这项工作。
或者,如果它不是您想要的特定文本,只需删除所有标记,这样您就只剩下文本了。我想你可以使用正则表达式。
答案 3 :(得分:0)
您也可以使用HtmlCleaner
jar。
以下是代码。
HtmlCleaner cleaner = new HtmlCleaner();
TagNode node = cleaner.clean( url );
System.out.println( node.getText().toString() );