用lxml解析RSSFeed不那么痛苦?

2024-06-26 13:24:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要用Python和Atom来显示RSS提要。从PHP开始,我可以通过$entry->;link快速获取值,我发现lxml更精确、更快,尽管很复杂。经过几个小时的调查,我得到了一个关于Arstranica的消息:

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只需一行代码就可以完成任务!为什么?在


Tags: textinurlfortitlefeedlinkelement
2条回答

您可以尝试speedparser,它是Universal Feed Parser与{}的实现。不过还处于测试阶段。在

看看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

相关问题 更多 >