2017-10-28 117 views
0

Stackoverflow RSS源中的每个作业项都具有某些标签,其中包含关键字“category”。使用Python中的Feedparser解析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") 

回答

2

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

+0

解决了!谢谢。 – Felix

相关问题