【问题标题】:Speed up feedparser加速 feedparser
【发布时间】:2013-06-20 19:41:39
【问题描述】:

我正在使用 feedparser 打印前 5 个 Google 新闻标题。我从 URL 中获取所有信息的方式与往常一样。

x = 'https://news.google.com/news/feeds?pz=1&cf=all&ned=us&hl=en&topic=t&output=rss'
feed = fp.parse(x)

我的问题是我在启动 shell 时正在运行这个脚本,所以大约 2 秒的延迟变得非常烦人。这个时间延迟主要是来自网络通信,还是来自解析文件?

如果是解析文件,有没有办法只取我需要的东西(因为在这种情况下这是非常少的)?

如果是前一种可能,有什么办法可以加快这个过程吗?

【问题讨论】:

  • 你是用一些框架还是纯python shell脚本?
  • 运行python -mcProfile your_script.py查看时间都花在了哪里。
  • 感谢塞巴斯蒂安的提示。作为后续行动,约翰内斯似乎是对的,因为它是多种因素。在 feedparser、打开 urllib 和使用 http 访问信息之间的时间相当平均。

标签: python python-2.7 rss feedparser


【解决方案1】:

我想一些延迟加起来了:

  • Python 解释器需要一段时间来启动和导入模块
  • 网络通信需要一点时间
  • 解析可能只消耗很少的时间,但确实如此

我认为没有直接的方法可以加快速度,尤其是第一点。我的建议是您定期下载您的提要(您可以设置一个 cron 作业或编写一个 Python 守护程序)并将其存储在磁盘上的某个位置(即纯文本文件),因此您只需在终端上显示它们启动(echo 可能是最简单和最快的)。

我个人对 feedparser 有很好的体验。我使用它通过 Python 守护程序每半小时下载约 100 个提要。

【讨论】:

  • 最后一点,我个人使用 speedparser,它从字符串解析提要快 5 倍。
【解决方案2】:

如果您想要更快的结果,则实时解析而不是更好的情况。

您可以尝试通过Celery 或类似的其他解决方案异步执行此操作。我喜欢芹菜,它有很多能力。有诸如 cron 或 async 等任务的能力。

【讨论】:

    猜你喜欢
    • 2012-04-04
    • 1970-01-01
    • 2013-04-23
    • 2017-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-27
    • 2014-07-13
    相关资源
    最近更新 更多