问题描述
我作为一名 Python 新手正在做一个练习,练习在 Python 中导入数据。最终,我想分析来自不同播客的数据(播客本身和每一集的信息),方法是将数据放入使用 NLP 处理的连贯数据框架中。
到目前为止,我已经成功阅读了 RSS 提要列表,并获得了 RSS 提要(一篇帖子)的每一集的信息。
但是我很难在 python 中找到一个集成工作流程来收集两者
代码 这是我到目前为止所得到的
import Feedparser
import pandas as pd
RSS_Feeds = ['http://Feeds.Feedburner.com/TEDTalks_audio','https://joelhooks.com/RSS.xml','https://www.sciencemag.org/RSS/podcast.xml',]
#number of Feeds is reduced for testing
posts = []
Feed = []
for url in RSS_Feeds:
Feed = Feedparser.parse(url)
for post in Feed.entries:
posts.append((post.title,post.link,post.summary))
df = pd.DataFrame(posts,columns=['title','link','summary'])
输出 数据框包括三列的 652 个非空对象(如预期)——基本上是每个播客中的每个帖子。 title 列指的是剧集的标题,但不是指的是播客的标题(在本例中是“Ted Talk Daily”)。
标题 | 链接 | 总结 | |
---|---|---|---|
0 | 问自己关于你所有事情的 3 个问题...... | https://www.ted.com/talks/stacey_abrams_3_ques... | 你如何应对挫折决定了你... |
1 | 你的睡眠模式说明了你的亲属关系... | https://www.ted.com/talks/tedx_shorts_what_you... | Wendy Troxel 着眼于文化期望... |
2 | 我们如何才能真正付钱给人们——用...... | https://www.ted.com/talks/ted_business_how_we_... | Pay 表示,资本主义迫切需要升级...... |
我也在努力寻找一种方法来将播客的标题也包含到这个数据帧中。我总是在选择部分整个提要信息时出错,例如['Feed']['title']。
来源 我已经习惯了迄今为止基于以下来源的内容:Get Feeds from FeedParser and Import to Pandas DataFrame
解决方法
在这种情况下可以使用 feed.feed.title
访问 Feed 标题:
# ...
for url in rss_feeds:
feed = feedparser.parse(url)
for post in feed.entries:
posts.append((feed.feed.title,post.title,post.link,post.summary))
df = pd.DataFrame(posts,columns=['feed_title','title','link','summary'])
df
输出:
feed_title title link summary
0 TED Talks Daily 3 ways compa... https://www.... When we expe...
1 TED Talks Daily How we could... https://www.... Concrete is ...
2 TED Talks Daily 3 questions ... https://www.... How you resp...
3 TED Talks Daily What your sl... https://www.... Wendy Troxel...
4 TED Talks Daily How we can a... https://www.... Capitalism u...
.. ... ... ... ...
649 Science Maga... Science Podc... https://traf... Fear-enhance...
650 Science Maga... Science Podc... https://traf... Discussing t...
651 Science Maga... Science Podc... https://traf... Talking kids...
652 Science Maga... Science Podc... https://traf... The minimum ...
653 Science Maga... Science Podc... https://traf... The origin o...