2017-04-16 8 views
0

Feedparser를 사용하여 여러 RSS 피드를 구문 분석하지만이 함수는 작동하지 않습니다. 피드를 구문 분석하고 피드 항목에서 링크를 가져 와서 더 트윗을 푸는 함수를 만들려면 어떻게해야합니까? ;여러 RSS 피드 구문 분석 (파이썬)

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 루프에 보내고 반환해야 할 것들의 목록을 발생하지 않습니다 - 나는 그것을 할 수 있어요

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)) 

난 그냥이 때 함수가 즉시 반환됩니다.

첫 번째 루프 반복 결과 (첫 번째 피드에서 첫 번째 게시물의 첫 번째 링크) 만 가져옵니다. 현재 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