【问题标题】:Is there a way to use multithreading with chromedriver?有没有办法在 chromedriver 中使用多线程?
【发布时间】:2021-07-05 11:26:36
【问题描述】:

我有一个任务,我需要 selenium 自动化来执行多个搜索输入,每个都必须打开浏览器进行一些交互并关闭,我可以一个接一个地做到这一点,但我想如果我在这个项目上实现多线程它会快很多,我尝试实现它,但它从未按预期工作 我做了一些关于队列和线程工作者的搜索
但也无法实现 那么我可以创建一个队列并且一次只有 4 个线程工作吗? 因为我猜超过 4 个浏览器会很多。线程安全吗?

【问题讨论】:

  • 这能回答你的问题吗? Python selenium multiprocessing。请务必查看我对此的回答,它提供了急需的改进。关键是,如果您有 4 个线程和 20 个要运行的任务(20 个 URL),您不想打开和关闭 20 个浏览器而是只有 4 个(每个线程一个)。这将向您展示如何为每个新任务 (URL) 重用浏览器。

标签: python multithreading selenium multiprocessing selenium-chromedriver


【解决方案1】:

你可以使用模块threading和一个函数:

import threading

def main():
   # your code to execute with Selenium

for _ in range(4):
   threading.Thread(tagret=main).start()

同时运行 4 个以上的浏览器可能确实很多,但这确实取决于您的 PC 和页面的重量。您可以随时用更少的线程尝试上面的代码,看看效果如何。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-31
    • 2010-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-28
    • 2019-10-14
    相关资源
    最近更新 更多