如何使用feedparser在python中动态获取RSS提要(xml文件)的字段名



我在python中使用了feedparser库来读取来自特定URL的rss提要。通过使用以下代码行以"费用"变量接收提要:

fee =  feedparser.parse('http://www.indiatimes.com/r/python/.rss')

fee包含列表格式的列表中的提要。我们在这里得到的格式和数据是复杂的,而且不是固定的。

我想动态地获取这个RSS提要的字段(键)的名称。如何做到这一点?

有些字段名称是固定的,如链接、日期等。但我需要代码中所有字段的名称。

首先,您正在经历的链接有一个404错误。因此,您不会从该链接获得任何rss。

其次,RSS链接大多数时候以.rss文件结尾。

例如:http://timesofindia.feedsportal.com/c/33039/f/533916/index.rss

一旦你得到了一个真正有效的RSS链接,你所要做的就是:

fee = feedparser.parse('http://timesofindia.feedsportal.com/c/33039/f/533916/index.rss')
for feed in fee.entries:
    print feed.title
    print feed.link

我在上面写的是为了获得项目元素。

让我给你举一个更好的例子。

import feedparser
rss_document = """
<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
<title>Sample Feed</title>
<description>For documentation &lt;em&gt;only&lt;/em&gt;</description>
<link>http://example.org/</link>
<pubDate>Sat, 07 Sep 2002 00:00:01 GMT</pubDate>
<!-- other elements omitted from this example -->
<item>
<title>First entry title</title>
<link>http://example.org/entry/3</link>
<description>Watch out for &lt;span style="background-image:
url(javascript:window.location='http://example.org/')"&gt;nasty
tricks&lt;/span&gt;</description>
<pubDate>Thu, 05 Sep 2002 00:00:01 GMT</pubDate>
<guid>http://example.org/entry/3</guid>
<!-- other elements omitted from this example -->
</item>
</channel>
</rss>
"""
rss = feedparser.parse(rss_document)
# Channel Details
print "-----Channel Details-----"
print rss.feed.title
print rss.feed.description
print rss.feed.link
# Item Details
print "-----Item Details-----"
for fee in rss.entries:
    print fee.title
    print fee.summary,
    print fee.link
feeds_all =  feedparser.parse('http://www.indiatimes.com/r/python/.rss')

我不确定它是什么类型的json,但函数.keys().values()在它上面工作得很好。我所做的是,为了动态获取以前未知的键的名称(上面的答案给出了静态键及其值,你需要提前知道键的名称),fee.keys()和它工作了!

因此,答案在以下几行中:channel_keys = feeds_all.keys()feed_keys = feeds_all.feed.keys(),用于获取这些键的值,feed_values = feeds_all.feed.values()。。。。

使用以下代码,它将为您提供所有密钥的名称,

import feedparser
feeds_all = feedparser.parse(URL)
feed_all_keys = feeds_all.keys()
feed_keys = feeds_all.feed.keys()
entries_keys = feeds_all.entries.keys()
  1. feed_all_keys保存所有密钥
  2. feed_keys保存与提要相关的关键帧
  3. entries_keys保存与条目(项)相关的密钥

最新更新