解析多个RSS提要(Python)

时间:2017-04-16 17:12:00

标签: python-2.7 rss feedparser

使用Feedparser解析多个RSS源,但此功能不起作用。如何创建一个函数来解析Feed并从Feed条目中获取链接以进一步推送到推文?

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

1 个答案:

答案 0 :(得分:0)

循环中的

getHeadlines(rss_url)不会导致返回的事物列表;它会导致函数立即返回。

在这种情况下,您将只获得第一次循环迭代的结果(第一个Feed中第一个帖子的第一个链接)。看一下当前feeds的返回值,看看我的意思。

相反,您可以构建一个链接列表,类似于构建links = [] for feed in feeds: for post in feed.entries: links.append(post.link) return links 列表的方式,并返回:

tweet()

我不确定import quandl import pandas as pd api_key=open(XXXX).read() df=quandl.get('FMAC/HPI_AK',authtoken=api_key) fiddy_states=pd.read_html('https://simple.wikipedia.org/wiki/List_of_U.S._states') # we will print only the abbrev of the states for abbv in fiddy_states [0][0][1:] : # print("FMAC/HPI_"+str(abbv)) query= "FMAC/HPI_"+str(abbv) df=quandl.get(query,authtoken=api_key) df.columns = [str(abbv)] main_df=pd.DataFrame() if main_df.empty: main_df= df else: main_df=main_df.join(df) print(main_df.head()) 应该是什么,但您可能需要单独发布列表中的每个元素。