在php或python中读取RSS提要/其他内容?

问题描述:

我目前正在Symfony2框架中开发一个网站,并且我写了一个每5分钟运行一次的命令,需要阅读大量的RSS新闻源,从中获取新项目并将它们放入我们的数据库。在php或python中读取RSS提要/其他内容?

现在,该命令需要大约45秒的时间才能运行,并且在这45秒钟内,CPU占用率也高达50%到90%,尽管我已经优化了它很多。

所以我的问题是,重写相同的命令是否是一个好主意,例如python? RSS/Atom库可用于python更快,更优化的可用于PHP的?它的快速

http://lxml.de/parsing.html

因为解析使用本地代码实现:

由于提前, 夏侯

通过在每次迭代结束时添加usleep()函数来解决此问题。这大大降低了CPU和内存消耗。这个过程大约需要20分钟,现在只需要大约5个!

可以使用lxml的哪些用户基本的libxmlÇiibrary解析原始的XML。

有人已经做的:

Encoding error while parsing RSS with lxml

在另一方面,如果瓶颈不是XML解析,但数据下载和整理出来,那么瓶颈是其他地方。

在解析它们之前,您可以尝试首先检查这些提要的Cache-Headers。
通过这种方式,您可以将昂贵的解析操作保存在很多提要上。

将最新更新的日期存储在源数据库中,然后检查可能的缓存标头。有几个,所以看看什么最适合或最受欢迎或检查所有。
头可能是:

  • 过期
  • 的Last-Modified
  • 的Cache-Control
  • 附注
  • ETag的

但要注意:你必须相信你的饲料来源。
并非每个供稿都提供了这样的标题或正确提供了它们。
但我相信他们中的很多人都这样做。

+0

其实很多他们不:(:(大多数甚至不提供rss MIME类型。 – jaapz 2013-03-12 12:45:24