【问题标题】:Python / Celery / Selenium continuous task (avoid reopening browser)Python / Celery / Selenium 连续任务(避免重新打开浏览器)
【发布时间】:2016-08-07 19:07:39
【问题描述】:

我对 selenium 的最大问题是浏览器的重新打开时间过长(每隔几分钟就使用它刮擦一次)。我也在使用代理并使用 python 的线程运行多个浏览器 - 每隔几分钟就会启动/停止(当新工作到来时)

线程也意味着只使用 1 个 CPU,性能会受到影响。

我一直在考虑开始使用 celery(开箱即用的多核支持)并使工作人员(不同的代理/浏览器)无限期地运行(while 循环),同时打开的 selenium 浏览器实例等待获取确切的 URL抓取 - 通过 redis 之类的东西提供数据。

用 celery 运行像这样的连续任务是个好主意吗?有没有更好的方法来做到这一点?

【问题讨论】:

    标签: python selenium celery


    【解决方案1】:

    无限期地持有硒的开放实例从来都不是一个好主意, 最佳做法是重新打开每个任务。

    所以对于你的问题,我认为这不是一个好主意。

    让我为您提供另一种架构。

    使用 Docker 运行您的 selenium 机器,
    基本上创建selenium-grid(谷歌的第一个结果link) 使用 Docker

    一旦一切设置正确,任务就会变得简单,通过多处理将所有作业并行发送到您的 selenium 集线器,
    它们将在您需要的任意数量的容器上同时运行。
    工作完成后,您可以销毁容器并重新开始下一个循环。

    使用 docker 还可以让您非常轻松地扩展您的操作

    【讨论】:

      猜你喜欢
      • 2013-05-30
      • 2022-01-23
      • 1970-01-01
      • 1970-01-01
      • 2017-07-14
      • 2023-01-20
      • 2013-11-07
      • 1970-01-01
      • 2018-05-31
      相关资源
      最近更新 更多