4

ほとんどの場合、Python、Atom で RSS フィードを表示する必要があります。$entry->link でかなり高速に値を取得できる PHP から来て、複雑ではありますが、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 は 1 行のコードで作業を完了します! なんで?

4

2 に答える 2

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
于 2012-06-22T14:37:30.733 に答える
3

でUniversal Feed Parserを実装したspeedparserを試すことができます。まだベータ版ですが。lxml

于 2013-06-19T06:32:01.597 に答える