使用Django(Python)构建博客RSS源

时间:2012-06-29 14:38:11

标签: python django

标题为,我正在尝试构建一个小型应用程序,它将聚合来自不同博客的RSS。我试图测试并探索这个操作的feedparser,虽然我试图编写一个可以检测rss feed的代码。

大多数人只会输入www.mysite.com/blog,这不是RSS源的URL。如果我有办法检测RSS提要,我试图复制浏览器行为,它可以看到RSS URL。

任何想法?

3 个答案:

答案 0 :(得分:1)

浏览器使用RSS feed auto-discoveryAtom feed auto-discovery查找给定网页上的Feed。

例如,问题列表可通过Atom订阅源获取,该订阅源链接在关联页面的HTML标题中:

<link rel="alternate" type="application/atom+xml" title="Feed of questions tagged python" href="/feeds/tag/python" />

您需要解析给定页面中的<link rel="alternate">标签才能发现这些标签; application/atom+xmlapplication/rss+xml类型的任何内容都适合。

答案 1 :(得分:1)

使用类似BeautifulSoup的内容来解析HTML文档并查找RSS源。以下是一个基本示例,不一定是效率最高的:

from bs4 import BeautifulSoup
soup = BeautifulSoup(html_doc)

rss_links = soup.select('link[type="application/rss+xml"]')
for link in rss_links:
    rss_url = link.get('href')

查看完整的BeautifulSoup documentation

答案 2 :(得分:0)

有一个很棒的应用程序,名为Feedjack

但是当RSS源包含少于100个字符时,你会发现自己正在敲打墙。

为了完全控制(准确汇总所需内容)以及没有任何RSS Feed的网站,我建议Scrapy