我在Python上构建了一个简单的RSS阅读器,但无法正常工作。 此外,我想获得每篇文章的精选图片来源链接,但没有找到解决方法。
它向我显示错误:回溯(最近一次通话):文件 第7行中的“ RSS_reader.py” feed_title = feed ['feed'] ['title']
如果还有其他RSS提要可以正常工作。所以我不明白为什么有些RSS供稿正在工作而有些却没有
所以我想了解为什么代码不起作用以及如何获取帖子的精选图片来源链接 我附上了用Python 3.7编写的代码
import feedparser
import webbrowser
feed = feedparser.parse("https://finance.yahoo.com/rss/")
feed_title = feed['feed']['title']
feed_entries = feed.entries
for entry in feed.entries:
article_title = entry.title
article_link = entry.link
article_published_at = entry.published # Unicode string
article_published_at_parsed = entry.published_parsed # Time object
article_author = entry.author
content = entry.summary
article_tags = entry.tags
print ("{}[{}]".format(article_title, article_link))
print ("Published at {}".format(article_published_at))
print ("Published by {}".format(article_author))
print("Content {}".format(content))
print("catagory{}".format(article_tags))
答案 0 :(得分:1)
您还可以使用诸如beatifulsoup(https://www.crummy.com/software/BeautifulSoup/bs4/doc/)之类的xml解析器库并创建自定义解析器。可以在此处(https://github.com/vintageplayer/RSS-Parser)找到样本客户解析器代码。可以在这里读到相同的内容(https://towardsdatascience.com/rss-feed-parser-in-python-553b1857055c)
尽管库可能有用,但是beautifulsoup是一个非常方便的库,可以尝试。
答案 1 :(得分:0)
几件事。
1)第一个feed['feed']['title']
不存在。
2)至少对于此站点entry.author, entry.tags
不存在
3)似乎feedparser与python3.7不兼容(它给了我KeyError, "object doesn't have key 'category'
)
因此,作为起点,请尝试在python 3.6中运行以下代码,然后从那里开始。
import feedparser
import webbrowser
feed = feedparser.parse("https://finance.yahoo.com/rss/")
# feed_title = feed['feed']['title'] # NOT VALID
feed_entries = feed.entries
for entry in feed.entries:
article_title = entry.title
article_link = entry.link
article_published_at = entry.published # Unicode string
article_published_at_parsed = entry.published_parsed # Time object
# article_author = entry.author DOES NOT EXIST
content = entry.summary
# article_tags = entry.tags DOES NOT EXIST
print ("{}[{}]".format(article_title, article_link))
print ("Published at {}".format(article_published_at))
# print ("Published by {}".format(article_author))
print("Content {}".format(content))
# print("catagory{}".format(article_tags))
祝你好运。
答案 2 :(得分:0)
我已经将 BeautifulSoup 用于初学者 RSS 提要阅读器项目(您需要安装 lxml 才能使其工作,因为我们正在处理 xml):
from bs4 import BeautifulSoup
import requests
url = requests.get('https://realpython.com/atom.xml')
soup = BeautifulSoup(url.content, 'xml')
entries = soup.find_all('entry')
for i in entries:
title = i.title.text
link = i.link['href']
summary = i.summary.text
print(f'Title: {title}\n\nSummary: {summary}\n\nLink: {link}\n\n------------------------\n')
您可以在此处找到 Youtube 视频: https://www.youtube.com/watch?v=8HbqO-TfjlI