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

如何找到特定网站的 RSS 提要?有没有什么特别的方法可以找到?

【问题讨论】:

  • 另外,重要的是要注意某些网站可能根本没有提要。在这种情况下,您将无法找到上述任何 RSS 源代码。我的意思是——“并非所有网站/博客都有 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 的工具菜单现在有一个“页面信息”命令。该工具中的一个选项卡显示发现的提要信息。

    【讨论】:

    【解决方案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
    

    ....

    【讨论】:

      猜你喜欢
      • 2014-02-01
      • 2019-09-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-16
      • 2011-07-23
      • 2015-08-19
      相关资源
      最近更新 更多