Python 3.6:Feedparser问题获取子属性

时间:2017-10-11 11:53:11

标签: python feedparser

我正在使用feedparser读取一个正常运行的XML Feed,我可以遍历任何一级属性,但我无法访问第一级以下的任何内容。

例如,我无法从links中提取任何属性。

非常感谢任何帮助。

代码

import feedparser

feed = feedparser.parse("https://dev.test.com/feed.xml")

for post in feed.entries:
    print(post.title) # Works
    print(post.links.rel) # Doesn't work
    print(post.links[0].rel # Doesn't work

来自变量后的输出

{
    'title': 'test title of article'
    , 'links': [
        {
            'rel': 'alternate'
            , 'type': 'text/html'
            , 'href': 'http://dev.test.com/test-link'
        }
        , {
            'length': '0'
            , 'type': 'image/jpeg'
            , 'href': 'http://dev.test.com/test-link.jpg'
            , 'rel': 'enclosure'
        }
    ]
    , 'link': 'http://dev.test.com/test-link'
    , 'published': 'Tue, 10 Oct 2017 19:21:00 +0100'
}

1 个答案:

答案 0 :(得分:3)

.rel['rel']都应该有效:

>>> import feedparser
>>> feed = feedparser.parse('https://lwn.net/headlines/newrss')
>>> feed.entries[0].links[0].rel
'alternate'
>>> feed.entries[0].links[0]['rel']
'alternate'

由于条目类型为FeedParserDict

>>> type(feed.entries[0].links[0])
<class 'feedparser.FeedParserDict'>

哪个实现__getattr__,请参阅:help(feed.entries[0].links[0])