我从用户那里得到一个 URL。我需要知道:
a) URL 是有效的 RSS 源吗?
b) 如果没有,是否存在与该 URL 关联的有效提要

使用 PHP/Javascript 或类似的东西

(前任。 http://techcrunch.com a) 失败,但 b) 会返回他们的 RSS feed)

编辑:看我的 回答 以下

有帮助吗?

解决方案

找到了我想要的东西:

谷歌的 AJAX 提要 API 具有加载提要和查找提要功能(文档 这里).

A) 负载馈送 以 JSON 形式提供 feed(和 feed 状态)

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

还有一个查找提要功能,可以根据关键字搜索 RSS 提要。

计划将其与 JQuery 的 $.getJSON 一起使用

其他提示

Zend Feed 类Zend框架 可以自动解析网页并列出可用的提要。

例子:

$feedArray = Zend_Feed::findFeeds('http://www.example.com/news.html');

这个链接 将允许您使用 W3C 规范根据 RSS/Atom 规范验证链接,但需要您手动输入 url。

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

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

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

大多数浏览器都使用这种类型的链接来“自动发现”提要(导致 RSS 图标出现在您的地址栏中)

a) 检索它并尝试解析它。如果你能解析它,它就是有效的。

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

对于 Perl 来说,有 饲料::查找 ,它确实会自动从网页发现聚合提要。用法非常简单:

use Feed::Find;
my @feeds = Feed::Find->find('http://example.com/');

它首先尝试 link 标签,然后扫描 a 名为的文件的标签 .rss 以及类似的事情。

您是使用特定语言执行此操作,还是只需要有关 RSS 规范的详细信息?

一般来说,查找 XML 序言:

<?xml version="1.0" encoding="UTF-8"?>

后跟 <rss> 元素,但您可能希望将其验证为 XML、根据 DTD 对其进行完全验证,或者验证 - 例如,引用的每个 URL 是否有效等。更多细节会有所帮助。

更新:啊-PHP。我发现这个库非常有用: 喜鹊RSS

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top