如何找到特定网站的 RSS 提要?

Posted

技术标签:

【中文标题】如何找到特定网站的 RSS 提要?【英文标题】:How to find RSS feed of a particular website? 【发布时间】:2011-09-13 16:54:12 【问题描述】:

有没有什么特别的方法可以找到?

【问题讨论】:

另外,重要的是要注意某些网站可能根本没有提要。在这种情况下,您将无法找到上述任何 RSS 源代码。我的意思是——“并非所有网站/博客都有 RSS 提要”。 【参考方案1】:

您可以通过查看主页(或博客)的来源找到它。寻找如下所示的一行:

<link rel="alternate" type="application/rss+xml" title="RSS Feed" href="http://example.org/rss" />

href 值将是 RSS 所在的位置。

【讨论】:

这是一个标准的权利,所以我可以在每个网站上寻找这个权利? 虽然title属性的值可能会改变。 是否有类似的方法来查找 atom 提要? @Cort3z 你打赌!某处可能有这样的东西:&lt;link rel="alternate" type="application/atom+xml" title="ATOM Feed" href="http://example.org/atom" /&gt;。关键是找application/atom+xml @FrancoisDeschenes 不错。不过,它似乎有点脆弱。并不是每个人都在其中添加类型。也许最好的选择实际上是搜索包含关键字 feed、rss 或 atom 的链接。【参考方案2】:

有多种方法可以获取网站的 RSS 提要。

你可以获取一个网站的页面源,然后搜索type="application/rss+xml"这个链接标签

这将包含该网站的 RSS 提要(如果有)。

这是一个简单的 Python 程序,可以打印任何网站的 RSS 提要(如果有)。

import requests  
from bs4 import BeautifulSoup  

def get_rss_feed(website_url):
    if website_url is None:
        print("URL should not be null")
    else:
        source_code = requests.get(website_url)
        plain_text = source_code.text
        soup = BeautifulSoup(plain_text)
        for link in soup.find_all("link", "type" : "application/rss+xml"):
            href = link.get('href')
            print("RSS feed for " + website_url + "is -->" + str(href))

get_rss_feed("http://www.extremetech.com/")

使用 .py 扩展名保存此文件并运行它。它将为您提供该网站的 RSS 提要网址。

Google 还提供 API 来查找网站的 RSS 提要。 请在此处找到它们:Google Feed API

【讨论】:

Google 的 API 现已弃用。【参考方案3】:

您需要遍历网站上的所有网址,然后找到包含“rss”的网址。

如果 href 标记中的 url 看起来像 feed.xml,则上述方法可能在某些情况下不起作用,因此在这种情况下,您需要循环遍历所有包含 href AND rss 的标签,然后从 href 属性中解析 url。

如果您想通过浏览器执行此操作,请按 CTRL+U 查看源代码,然后按 CTRL+F 打开查找窗口,然后输入 rssRSS Feed url 应该立即出现。

【讨论】:

【参考方案4】:

Firefox 的工具菜单现在有一个“页面信息”命令。该工具中的一个选项卡显示发现的提要信息。

【讨论】:

不再是 Firefox 64 救援插件:addons.mozilla.org/en-US/firefox/addon/feedbroreader【参考方案5】:

我需要找到带有 RSS 源的网站。使用 Visual Studio (VB) 我能够做到这一点。以下代码只是一个片段。它在循环结束后死亡,但它确实找到了网站上 rss 页面的任何引用。这就是我所需要的,所以我从来没有完成它。但它对我有用。

进口 System.Net 导入 System.IO

... 暗淡的请求作为 WebRequest 请求 = WebRequest.Create("http://www.[site]")

    Dim response As WebResponse = request.GetResponse()
    Dim responseStream As Stream = response.GetResponseStream()
    Dim reader As New StreamReader(responseStream)

    Dim line As String = reader.ReadLine()
    Dim intPos As Integer

    Do
        line = reader.ReadLine()
        intPos = line.IndexOf("/rss")
        If intPos > 0 Then
            MessageBox.Show(line + " " + intPos.ToString)
        End If
    Loop While Not line Is Nothing

....

【讨论】:

以上是关于如何找到特定网站的 RSS 提要?的主要内容,如果未能解决你的问题,请参考以下文章

在我的网站中自定义 RSS 提要

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

Wordpress 网站的 Mailchimp RSS 提要仅包含新项目,基于 FEEDITEM 的提要包含旧项目

Twitter RSS提要解析器,用于在网站上显示tweet(包括缓存)

RSS 提要 XML 文件有多大?

如何将 RSS 提要推送到 HTML5 通知?