如何找到特定网站的 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 你打赌!某处可能有这样的东西:<link rel="alternate" type="application/atom+xml" title="ATOM Feed" href="http://example.org/atom" />
。关键是找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 打开查找窗口,然后输入 rss。 RSS 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 提要?的主要内容,如果未能解决你的问题,请参考以下文章
Wordpress 网站的 Mailchimp RSS 提要仅包含新项目,基于 FEEDITEM 的提要包含旧项目