反馈分析器:条目.标题不一致

2024-05-15 10:06:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用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

有没有人遇到过类似的问题?这似乎完全是随机的。你知道吗


Tags: textimporthttpurltitlefeed情况some
1条回答
网友
1楼 · 发布于 2024-05-15 10:06:40

这似乎是服务器端的一个bug。我以前没有看到过feed,但在使用feed时,我设法以明显随机的方式看到了这两种日期格式。你知道吗

如果您的目标是获得事件的一致日期和标题,那么可以在该提要中使用额外的xcal元数据。例如,通过使用^{}

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时,RSS提要似乎总是以06/15/16格式输出标题,当使用http://chem.aalto.fi/en/current/events/rss.xml?format=atom请求时,则以15.06.2016格式输出标题。你知道吗

用于生成提要的代码(基于提要顶部的generator="FeedCreator 1.7.6(BH)")可以在https://github.com/ajslater/feedcreator/blob/master/include/feedcreator.class.php看到

基于此,我的猜测是Feedcreator库对生成条目标题的主代码有一些意外的副作用,而且副作用似乎会根据所使用的feed格式而有所不同。如果没有在URL中显式设置feed格式,那么它可能(错误地)使用了格式或整个feed内容的某个缓存版本。无论如何,在URL中显式设置格式很可能会解决这个问题。你知道吗

相关问题 更多 >