【问题标题】:Getting NoneType while trying to get updated date from RSS using python尝试使用 python 从 RSS 获取更新日期时获取 NoneType
【发布时间】:2011-10-12 14:51:02
【问题描述】:

当我尝试从任何 RSS 提要(使用通用提要解析器)获取日期时,我的以下代码运行良好:

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)) TypeError:参数必须是 9 项序列,而不是无

【问题讨论】:

  • 你为什么将FEED_DATE初始化为None
  • @MattFenwick,已编辑。只是为了确保那是 NoneType ,用于测试
  • 你是如何解析提要的?
  • @Avaris,我正在使用通用提要解析器解析提要

标签: python datetime date rss


【解决方案1】:

假设您使用feedparser 包来解析rss:日志文件中出现错误的原因是您使用了feedparser 无法理解的日期格式。这意味着entry.updated_parsed 将设置为None。问题似乎是时间字段中的第四个元素。如果日期更改为:

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

然后 feedparser 会正确处理它们。

【讨论】:

  • 是的,这就是问题所在。但是如何将其转换为日期时间格式
  • @Subhen。什么 rss 提要以这种格式生成日期?如果日期不是标准格式,您可能需要从entry.updated 获取日期字符串并自行解析。
猜你喜欢
  • 2020-07-04
  • 1970-01-01
  • 1970-01-01
  • 2016-05-29
  • 1970-01-01
  • 1970-01-01
  • 2019-01-21
  • 1970-01-01
  • 2021-04-16
相关资源
最近更新 更多