【问题标题】:Parse Stackoverflow RSS job feed for same name elements, with Feedparser in Python使用 Python 中的 Feedparser 解析同名元素的 Stackoverflow RSS 作业提要
【发布时间】:2017-10-28 22:32:17
【问题描述】:

Stackoverflow RSS 提要上的每个作业项都有特定的标签,键为“类别”。

看起来基本上是这样的:

<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://stackoverflow.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")

【问题讨论】:

    标签: python rss feedparser


    【解决方案1】:

    feedparser 项目上的category 基本上是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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-07-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-25
      相关资源
      最近更新 更多