解析同名元素的 Stackoverflow RSS 作业提要,在 Python 中使用 Feedparser

Parse Stackoverflow RSS job feed for same name elements, with Feedparser in Python

Whosebug RSS 提要上的每个工作项目都有特定的标签,关键字为 "category"。

基本上是这样的:

<category>scala</category>
<category>hadoop</category>
<category>apache-spark</category>
<category>hive</category>
<category>json</category>

我想使用 Feedparser,将所有标签放入列表中。相反,我总是只得到第一个元素。 Feedparser 文档提到了 entries[i].content,但我不确定这是否是正确的方法,或者在这种情况下如何使用它。

这是我的代码:

import feedparser

rss_url = "https://whosebug.com/jobs/feed"
feed = feedparser.parse(rss_url)
items = feed["items"]

for item in items:
    title = item["title"]
    try:
        tags = []
        tags.append(item["category"])
        print(title + " " + str(tags))
    except:
        print("Failed")

category on feedparser items 基本上是 tags 列表中第一个元素的别名,它基本上是更多 feedparser 项目的列表,每个都有一个 term 属性包含标签名称。

您可以直接访问条款:

categories = [t.term for t in item.get('tags', [])]

您的代码是:

for item in items:
    title = item["title"]
    categories = [t.term for t in item.get('tags', [])]
    print(title, ', '.join(categories))

参见entries[i].tags documentation