使用Python从RSS获取更新日期时出现NoneType

0 投票
1 回答
664 浏览
提问于 2025-04-17 04:10

我有一段代码,当我从任何RSS源获取日期时,它运行得很好(使用通用的Feed解析器):

for entry in RSS_FEED.entries:
    FEED_DATE=entry.updated_parsed
    FEED_DATE_STRING = datetime.fromtimestamp(mktime(FEED_DATE))
    FEED_DATE_STRING = str(FEED_DATE_STRING)
    FEED_DATE_STRING = Datetime.ParseDate(FEED_DATE_STRING).strftime('%a %b %d, %Y')

但是在解析以下RSS格式时:

<item>
<title>Title</title>
<description>
Description
</description>
<lastBuildDate>Wed, 5 Oct 2011 03:11:00:00 +0700</lastBuildDate>
<pubDate>Wed, 5 Oct 2011 03:11:00:00 +0700</pubDate>
</item>

我在日志文件中遇到了错误:

FEED_DATE_STRING = datetime.fromtimestamp(mktime(FEED_DATE)) 类型错误:参数必须是9个项目的序列,而不是None

1 个回答

0

假设你正在使用feedparser这个包来解析RSS,日志文件中的错误是因为你使用了feedparser无法理解的日期格式。这就导致entry.updated_parsed被设置为None,也就是没有值。问题似乎出在时间字段的第四个元素上。如果把日期改成:

Wed, 5 Oct 2011 03:11:00 +0700

那么feedparser就能正确处理这些日期了。

撰写回答