我正在运行这段代码
from multiprocessing.Pool import ThreadPool
from selenium import webdriver
driver = webdriver.Firefox()
driver.get(url)
elements = driver.find_elements_by_class_name("class-name")
pool = ThreadPool(4)
async = [pool.apply_async(fn_which_calls_get_attribute,(element,)) for element in elements]
results = [result.get() for result in async]
这对于某些结果工作正常,但对于其他结果会抛出 ResponseNotReady 错误。如果我使用“pool.apply”而不是异步版本,它会按预期运行。
是不是我一次多次调用selenium driver,报错是因为它无法处理?还是我的并行化有问题?
请您参考如下方法:
只是提示 Selenium 在单线程和单核系统中运行。因此不可能在 selenium webdriver 上执行多线程。是的,您可以创建一个单独的实例并附加到多核系统的另一个核心。
我可能不会回答你的问题,但如果你正在尝试做类似的事情,那就不要做。
