2017-10-28 18 views
0

Stackoverflow RSSフィードの各ジョブ項目には、キー "カテゴリ"を持つ特定のタグがあります。パースStackoverflow RSSフィードは、PythonでFeedparserと同じ名前の要素を処理します

このように基本的に探している相手:

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

私はリストにすべてのタグを入れて、Feedparserを使用したいと思います。代わりに、私は常に最初の要素を取得します。 Feedparserのドキュメントにはentries[i].contentが記載されていますが、正しいアプローチかどうか、あるいはこの場合にどのように使用するかはわかりません。ここで

は私のコードは次のとおりです。feedparser項目の

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は含まれていterm属性を持つそれぞれ、基本的には基本的にはより多くのfeedparser項目のリストであるtagsリストの最初の要素の別名でありますタグ名。

あなただけの直接用語をアクセスすることができます。

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

関連する問題