0

我已经运行了一次网络爬虫并收集了很多 html 和 xml 页面。我的目的是从中提取所有 Rss/Atom 提要。我注意到许多网站只是在标题上使用“text/xml”作为内容类型,所以我无法识别来自任何其他类型 xml 的提要。所以我写了这段代码:

public boolean isFeed(String content){
    Document doc = Jsoup.parse(content);
    Elements feed = doc.getElementsByTag("feed");
    Elements channel = doc.getElementsByTag("channel");
    if(feed!=null){
        if(!feed.isEmpty()){
             return true;
        }
    }
    if(channel!=null){
        if(!channel.isEmpty()){
             return true;
        }
    }
    return false;
}

这里有什么遗漏吗?有什么问题吗?

4

1 回答 1

1

使用成熟的 XML 解析器解析文档。如果它不编译,它就不是 Atom。然后获取文档(根)元素。如果不是<feed xmlns="http://www.w3.org/2005/Atom">,则不是 Atom。当然使用适当的 API 来读取标签名称和命名空间,不要比较字符串。

采取类似的方法来发现 RSS。或者使用罗马库为您解析文档。

于 2012-10-19T17:27:30.497 回答