我在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 <em>only</em></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 <span style="background-image:
url(javascript:window.location='http://example.org/')">nasty
tricks</span></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()
- feed_all_keys保存所有密钥
- feed_keys保存与提要相关的关键帧
- entries_keys保存与条目(项)相关的密钥