Python/Celery/Selenium连续任务(避免重新打开浏览器)



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

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

我一直在考虑开始使用芹菜(开箱即用的多核支持),让worker(不同的代理/浏览器)无限期地运行(同时循环),打开selenium浏览器的实例,等待通过redis之类的东西获取确切的URL。

用芹菜连续运行这样的任务是个好主意吗有更好的方法吗?

无限期地保存硒的开放实例从来都不是一个好主意,最佳实践是重新开始每项任务。

所以对于你的问题,在我看来这不是一个好主意。

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

使用Docker运行硒机器,
基本上创建selenium网格(谷歌链接中的第一个结果)使用Docker

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

使用docker还可以让你很容易地扩展你的操作

相关内容

  • 没有找到相关文章

最新更新