无法使用jsoup获取RSS提要链接

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了无法使用jsoup获取RSS提要链接相关的知识,希望对你有一定的参考价值。

我正在尝试构建一个rss feed阅读器应用程序。我正在获取rss链接并使用jsoup解析它。我正在获取有线,可混合,whackyideas,techcrunch,企业家和其他类似网站等网站的RSS源。但是,当我尝试像nytimes,bbc,cnn或其他新闻网站这样的网站时,我无法获取rss链接。我认为问题在于下面提到的代码。有人可以帮我解决这个问题吗?

public String getRSSLinkFromURL(String url) {
// RSS url
String rss_url = null;

try {
    // Using JSoup library to parse the html source code
    org.jsoup.nodes.Document doc = Jsoup.connect(url).get();
    // finding rss links which are having link[type=application/rss+xml]
    org.jsoup.select.Elements links = doc
            .select("link[type=application/rss+xml]");

    Log.d("No of RSS links found", " " + links.size());

    // check if urls found or not
    if (links.size() > 0) {
        rss_url = links.get(0).attr("href").toString();
    } else {
        // finding rss links which are having link[type=application/rss+xml]
        org.jsoup.select.Elements links1 = doc
                .select("link[type=application/rss+xml]");
        if(links1.size() > 0){
            rss_url = links1.get(0).attr("href").toString();
        }
    }

} catch (IOException e) {
    e.printStackTrace();
}

我也尝试使用“atom + xml”代替“rss + xml”,但得到了相同的结果。

编辑:我已经按照以下方式修改了代码,并且我开放了更多的网站,这些网站没有提前打开。但我仍然没有得到像“www.BBC.com”和“www.timesofindia.indiatimes.com”这样的网站。如果有人能帮助我,我将不胜感激

org.jsoup.nodes.Document doc = Jsoup.connect(url).get();
doc = Jsoup.connect(url).userAgent("Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36")
    .timeout(12000)
    .referrer("http://www.google.com")
    .get();
答案

我想你错过了“application / rss + xml”的引号:"link[type="application/rss+xml"]"

以上是关于无法使用jsoup获取RSS提要链接的主要内容,如果未能解决你的问题,请参考以下文章

如何从 RSS 源获取全文:Android 和 IOS

如何从 php 中的 rss 提要获取图像

使用 BaseAdapter 时片段 TabLayout 中的 NullPointerException

从外部RSS提要获取Wordpress特色图像

Cordova RSS 提要链接不会在外部浏览器中打开

过滤 RSS 提要以仅显示更受欢迎的链接