我对selenium的最大问题是浏览器的重新打开时间很长(每隔几分钟使用它一次)。我也使用代理并使用python的线程运行多个浏览器 - 所有开始/停止每隔几分钟(当新工作到来时)
线程也意味着只使用了1个CPU并且性能受损。
我一直在考虑开始使用芹菜(开箱即用的多核支持)并让工作人员(不同的代理/浏览器)无限期地运行(同时循环),开放的selenium浏览器实例等待获取精确的网址 - 通过像redis这样的东西来提取。
用芹菜来运行这样的连续任务是个好主意吗?有没有更好的方法呢?
答案 0 :(得分:2)
无限期地保持开放的硒实例永远不是一个好主意, 最佳做法是重新开启每项任务。
所以对你提问,在我看来这不是一个好主意。
让我为您提供另一种架构。
使用Docker
运行您的selenium机器,
基本上创建selenium-grid(谷歌link中的第一个结果)
使用Docker
一旦设置正确,任务将变得简单,多处理将并行的所有作业发送到您的硒中心, 它们将根据您的需要同时在多个容器上运行 一旦工作完成,您可以在下一个周期中销毁容器并重新开始。
使用docker还可以让您轻松扩展操作