我需要在大多数情况下使用Python,Atom显示RSS-feeds。来自PHP,我可以通过$ entry->链接快速获得值,我发现lxml更精确,更快,尽管很复杂。经过几个小时的探索,我得到了这个使用arstechnica-feed:
def GetRSSFeed(url):
out = []
feed = urllib.urlopen(url)
feed = etree.parse(feed)
feed = feed.getroot()
for element in feed.iterfind(".//item"):
meta = element.getchildren()
title = meta[0].text
link = meta[1].text
for subel in element.iterfind(".//description"):
desc = subel.text
entry = [title,link,desc]
out.append(entry)
return out
这可以更容易吗?如何直接访问标签? Feedparser通过一行代码完成工作!为什么呢?
答案 0 :(得分:9)
查看feedparser库。它为您提供了格式良好的RSS对象。
> import feedparser
> feed = feedparser.parse('http://feeds.marketwatch.com/marketwatch/marketpulse/')
> print feed.keys()
['feed',
'status',
'updated',
'updated_parsed',
'encoding',
'bozo',
'headers',
'etag',
'href',
'version',
'entries',
'namespaces']
> len(feed.entries)
30
答案 1 :(得分:3)
您可以尝试speedparser,Universal Feed Parser与lxml
的实施。尽管如此仍处于测试阶段。