用Java解析谷歌新闻

时间:2015-12-15 11:44:43

标签: java parsing

最好的方法是什么?

我想解析新闻,然后使用类似关键字的内容过滤它们并找到匹配项。

有人已经做过吗?而且,这是合法的吗?

2 个答案:

答案 0 :(得分:1)

您可以使用google news url http://news.google.com/?output=rss的RSS Feed,它会在带有html标签的rss标签中返回google rss news。然后编写自定义代码来读取/解析xml或使用任何现有的RSS阅读库,如https://github.com/vgrec/SimpleRssReader

答案 1 :(得分:0)

我已经编写了一个函数来完成此操作,该函数每次都将返回随机新闻的链接和标题。

public Document getNews() {
    Document news = new Document();
    URL rssUrl = null;
    try {
        rssUrl = new URL("https://news.google.com/rss");
    } catch (MalformedURLException e) {
        e.printStackTrace();
    }
    DocumentBuilder builder = null;
    try {
        builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
    } catch (ParserConfigurationException e) {
        e.printStackTrace();
    }
    org.w3c.dom.Document doc = null;
    try {
        doc = builder.parse(rssUrl.openStream());
    } catch (SAXException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
    NodeList items = doc.getElementsByTagName("item");
    Element item = (Element) items.item(new Random().nextInt(items.getLength()));
    news.append("title", getValue(item, "title"));
    news.append("link", getValue(item, "link"));
    return news;
}

private String getValue(Element parent, String nodeName) {
    return parent.getElementsByTagName(nodeName).item(0).getFirstChild().toString();
}