我使用 feedparser 库解析该资源的 RSS 提要,然后将结果写入数据库。我收到此错误:
Traceback (most recent call last):
File "C:\Users\AppData\Local\Programs\Python\Python37-32\lib\site-packages\feedparser.py", line 398, in __getattr__
return self.__getitem__(key)
File "C:\Users\AppData\Local\Programs\Python\Python37-32\lib\site-packages\feedparser.py", line 356, in __getitem__
return dict.__getitem__(self, key)
KeyError: 'published'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:/Users=PycharmProjects/parser_russian_resource/parser_rss.py", line 61, in <module>
call_all_func(resources)
File "C:/UsersPycharmProjects/parser_russian_resource/parser_rss.py", line 40, in call_all_func
rss_published = feed.published
File "C:\Users\Администратор\AppData\Local\Programs\Python\Python37-32\lib\site-packages\feedparser.py", line 400, in __getattr__
raise AttributeError("object has no attribute '%s'" % key)
AttributeError: object has no attribute 'published'
我明白这个错误是什么意思。这意味着我使用了错误的密钥。结果,代码崩溃了。为了一切顺利,我决定提出一个条件。
也就是说,如果发布的密钥不匹配,则使用更新的密钥,如果更新的密钥不匹配,则使用 pubdate 密钥。为此,我编写了以下代码:
rss_published = feed.published
if rss_published != feed.published:
rss_published = feed.updated
else:
rss_published = feed.pubdate
在这里我无法理解。为什么条件不起作用?
正如上面评论中提示的那样。我决定进行异常检查