2017-04-16 16 views
0

Feedparserを使用して複数のRSSフィードを解析するが、この機能は動作しません。フィードを解析してフィードエントリからリンクを取得して、さらにツイートにプッシュする関数を作成するにはどうすればよいですか?複数のRSSフィードを解析する(Python)

def get(): 
    rss_url = [ 
    'http://www.huffingtonpost.com/news/syria/feed/', 
    'http://www.nytimes.com/svc/collections/v1/publish /www.nytimes.com/topic/destination/syria/rss.xml', 
    ] 

def getHeadlines(rss_url): 
    feeds = [] 
    for url in rss_url: 
     feeds.append(feedparser.parse(url)) 

    for feed in feeds: 
     for post in feed.entries: 
      return post.link 

tweet(getHeadlines(rss_url)) 

私はこれをしようとしたとき、私はそれを行うことができるよ -

RSS_URLS = [ 
'http://feeds.feedburner.com/RockPaperShotgun', 
'http://www.gameinformer.com/b/MainFeed.aspx?Tags=preview', 
] 

feed = feedparser.parse(RSS_URLS) 

for post in feed.entries: 
    print post.title 
+0

この場合、「役に立たない」とはどういう意味ですか?どのようにしてこのコードはあなたが期待することをしませんか?効果的な質問をするためのヒントについては[ask]をお読みください。これは良い答えを得る機会を増やすためにできる最大のことです。 – Chris

+0

私は、コードがフィードを解析し、フィード内の各エントリのリンクを導出することを期待しています。私は関数を定義するときにそれをしていません。 – codenovice

+0

コードブロックのインデントを修正してください。現在、どの行が 'getHeadlines()'の一部であり、どの行が表示されていないのかは明らかではありません。 – Chris

答えて

0

returnループにINGのが返されることのリストを引き起こすことはありません。関数がすぐに戻るようにします。

この場合、最初のループ反復の結果(最初のフィードの最初のリンクからの最初のリンク)のみが取得されます。現在のgetHeadlines(rss_url)の戻り値を見て、私の言いたいことを見てください。

代わりに、あなたは同様にあなたがfeedsのリストを構築しているかへのリンクのリストを作成し、その返すことができます:

links = [] 
for feed in feeds: 
    for post in feed.entries: 
     links.append(post.link) 

return links 

は私がtweet()をすることになっているかわからないんだけど、あなたはよおそらくリスト内の各要素を個別につぶす必要があります。

+0

別のURLリストを作成することを意味しますか?もう少し説明していただけますか? – codenovice

+0

@codenovice、私は私の答えを更新しました。今はっきりしているかどうか確認してください。 – Chris

+0

@ codenovice、私は提供したソリューションを使用してこれを動作させることができましたか?もしそうなら、[それを受け入れる]ことを忘れないでください(https://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work)。これは、ソリューションを見つけた他のユーザーを示しています。 – Chris

関連する問題