如何发现给定URL的RSS源

Gil*_*ean 20 php rss feeds discover atom-feed

我从用户那里得到一个URL.我需要知道:
a)URL是一个有效的RSS提要吗?
b)如果没有与该URL相关联的有效订阅源

使用PHP/Javascript或类似的东西

(例如http://techcrunch.com失败了),但b)会返回他们的RSS提要)

编辑:请参阅下面的答案

Gil*_*ean 20

发现了我想要的东西:

Google的AJAX Feed API具有加载Feed和查找Feed功能(此处提供文档).

a)加载Feed以JSON格式提供Feed(和Feed状态)

b)查找提要为给定的URL提供RSS提要

还有一个查找供稿功能,可根据关键字搜索RSS供稿.

计划在JQuery的$ .getJSON中使用它


小智 10

Zend的Feed类中的Zend的框架可以自动分析一个网页,列出可用的饲料.

例:

$feedArray = Zend_Feed::findFeeds('http://www.example.com/news.html');
Run Code Online (Sandbox Code Playgroud)


Con*_*oyP 6

此链接允许您使用W3C规范验证RSS/Atom规范的链接,但是需要您手动输入URL.

有许多方法可以通过编程方式执行此操作,具体取决于您选择的语言 - 在PHP中,将文件解析为有效的XML是一种很好的启动方式,然后将其与相关的DTD进行比较.

对于b),如果链接本身不是订阅源,您可以解析它并在页面的<head>部分中查找指定的订阅源,搜索类型为"application/rss + xml"的链接,例如:

<link rel="alternate" title="RSS Feed" 
    href="http://www.example.com/rss-feed.xml" type="application/rss+xml" />
Run Code Online (Sandbox Code Playgroud)

这种类型的链接是大多数浏览器用于"自动发现"提要的链接(导致RSS图标出现在地址栏中)


Joh*_*kin 5

a)检索它并尝试解析它.如果你可以解析它,它是有效的.

b)测试它是否是HTML文档(服务器发送text/html)MIME类型.如果是这样,请通过HTML解析器运行它,并查找<link>具有RSS提要关系的元素.