从中提取 RSS 提要 url

Extract RSS Feed url from

我有 100 个网站在不同位置公开了 RSS 提要。这些位置有几个指向不同提要的 RSS 提要链接。它几乎与 BBC Rss 提要页面相同 http://www.bbc.com/news/10628494

站点 1:域 1。com/rss 站点 2:domain2.com/enviroments/rss

有什么方法可以提取每个提要的 rss 链接 xml。

类似的东西 Automatically Extracting feed links (atom, rss,etc) from webpages 但我只想给网站。这样我就可以获得特定站点的所有可能的 rss 提要。

我想要一份来自 100 个网站的所有 rss 提要的列表。这样我就可以在仪表板上监控它们。哦,aee 混合了 bith atom 和 rss。

我做了什么。我研究了 apache nutch 和 parse-feed 插件。 Scrapy 是下一个选择,但我仍然不确定这是我要找的东西。

一般来说,提供 RSS 提要的网站至少会在主页的 header 中注明,有些甚至是每个页面。

有一个 RSS 提要示例:

<link href="http://snapwebsites.org/rss.xml"
      title="Snap! A C++ Open Source CMS RSS"
      type="application/rss+xml"
      rel="alternate">

请注意,网站之间的类型会略有不同。例如某些网站可能使用text而不是application(这是错误的,但是XML是文本...)还有application/atom+xml。您也可以同时使用这两种格式。

如果这不可用,则您必须检查主页或其他页面以找到指向 RSS 提要的锚点 link,这意味着:

  • 解析 HTML
  • 寻找主播
  • 读取href属性
  • 检查目标以查看它是否 returns 一个 XML 文件
  • 如果你得到一个 xml 文件(以 <?xml ... 开头)然后检查根标签:
  1. 'rss' -- RSS格式(版本是一个属性)
  2. 'feed' -- 原子格式

我在下一页有一个示例,其中包含 header 中的 <link ...> 标记:

http://snapwebsites.org/implementation/feature-requirements/feed-feature-core-atom-rss-20-etc

我不得不说,如果没有那个 link,要找到 RSS 提要会有点困难。也就是说,在许多网站上,提要文件使用扩展名(.rss、.atom、.xml),这可用于简化搜索。然而,越来越多的提要看起来像目录名称(.../blah.../foo 无法与标准 HTML 页面或提要区分开来,因此唯一的方法是读取文件目标并检查文件格式;HTTP 回复的 Content-Type 也应该是 application/rss+xmlapplication/atom+xml... 就像 header link type=...属性)


作为旁注,虽然不太可能(我还没有在实时网站上真正看到它),但可以使用 Link: ... HTTP header to indicate... links just the same as the <link ...> tag found in the HTML header. If you have access to the HTTP header (here is how to do it in PHP),那么值得寻找那些 headers 看看其中一个是否是 RSS 提要。