Feedparser:entry.title 不一致
Feedparser: entry.title inconsistency
我正在尝试使用 feedparser 解析 RSS 提要。
我得到这样的标题:
import feedparser
url = 'http://chem.aalto.fi/en/current/events/rss.xml'
feed = feedparser.parse(url)
for entry in feed.entries:
title = entry.title
print title
通常这没有问题,但我遇到了一个奇怪的情况。在此特定提要中,标题如下所示:
<title>06.11.2015: Some title text</title>
不出所料,我有时会得到:
06.11.2015: Some title text
...但有时对于同一项目也是如此:
11/06/15: Some title text
有没有人遇到过类似的问题?好像完全是随机的。
这似乎是服务器端的错误。我以前没有看过提要,但在使用提要时我设法以明显随机的方式看到了两种日期格式。
如果您的目标是获得一致的事件日期和标题,您可以在该提要中使用额外的 xcal
元数据。例如,通过使用 dateutil
:
import feedparser
import dateutil.parser
url = 'http://chem.aalto.fi/en/current/events/rss.xml'
feed = feedparser.parse(url)
for entry in feed.entries:
title = entry.title.split(": ", 1)[1]
start_time = dateutil.parser.parse(entry.xcal_dtstart)
end_time = dateutil.parser.parse(entry.xcal_dtend)
print("{} - {}: {}".format(start_time.date(), end_time.date(), title))
编辑:此外,就其价值而言,当使用 http://chem.aalto.fi/en/current/events/rss.xml?format=rss and in the 15.06.2016
format when using http://chem.aalto.fi/en/current/events/rss.xml?format=atom 请求时,RSS 提要似乎始终以 06/15/16
格式输出标题。
用于生成提要的代码(基于提要顶部的 generator="FeedCreator 1.7.6(BH)"
)可以在 https://github.com/ajslater/feedcreator/blob/master/include/feedcreator.class.php
中看到
基于此,我的猜测是 Feedcreator 库对生成条目标题的主要代码有一些意想不到的副作用,并且该副作用似乎因所使用的提要格式而异。如果提要格式未在 URL 中明确设置,则它可能(错误地)使用格式或整个提要内容的某些缓存版本。无论如何,在 URL 中明确设置格式很可能会为您解决此问题。
我正在尝试使用 feedparser 解析 RSS 提要。
我得到这样的标题:
import feedparser
url = 'http://chem.aalto.fi/en/current/events/rss.xml'
feed = feedparser.parse(url)
for entry in feed.entries:
title = entry.title
print title
通常这没有问题,但我遇到了一个奇怪的情况。在此特定提要中,标题如下所示:
<title>06.11.2015: Some title text</title>
不出所料,我有时会得到:
06.11.2015: Some title text
...但有时对于同一项目也是如此:
11/06/15: Some title text
有没有人遇到过类似的问题?好像完全是随机的。
这似乎是服务器端的错误。我以前没有看过提要,但在使用提要时我设法以明显随机的方式看到了两种日期格式。
如果您的目标是获得一致的事件日期和标题,您可以在该提要中使用额外的 xcal
元数据。例如,通过使用 dateutil
:
import feedparser
import dateutil.parser
url = 'http://chem.aalto.fi/en/current/events/rss.xml'
feed = feedparser.parse(url)
for entry in feed.entries:
title = entry.title.split(": ", 1)[1]
start_time = dateutil.parser.parse(entry.xcal_dtstart)
end_time = dateutil.parser.parse(entry.xcal_dtend)
print("{} - {}: {}".format(start_time.date(), end_time.date(), title))
编辑:此外,就其价值而言,当使用 http://chem.aalto.fi/en/current/events/rss.xml?format=rss and in the 15.06.2016
format when using http://chem.aalto.fi/en/current/events/rss.xml?format=atom 请求时,RSS 提要似乎始终以 06/15/16
格式输出标题。
用于生成提要的代码(基于提要顶部的 generator="FeedCreator 1.7.6(BH)"
)可以在 https://github.com/ajslater/feedcreator/blob/master/include/feedcreator.class.php
基于此,我的猜测是 Feedcreator 库对生成条目标题的主要代码有一些意想不到的副作用,并且该副作用似乎因所使用的提要格式而异。如果提要格式未在 URL 中明确设置,则它可能(错误地)使用格式或整个提要内容的某些缓存版本。无论如何,在 URL 中明确设置格式很可能会为您解决此问题。