首页 > 解决方案 > 多处理让每个工作人员的会话保持打开状态

问题描述

我正在使用 selenium 创建一个 chrome 驱动程序,获取一个链接,然后提取一些信息。

我想循环浏览网站中类似页面的列表。我尝试使用pool.map(run_func, website_list)将工作拆分为单独的进程,但使用这种方法,每个工作人员一次获取一个元素,并且webdriver.Chrome()必须在内部调用run_func

有没有一种简单的方法可以webdriver.Chrome()为每个保持打开状态的工作人员分配一个实例,而不必在函数内部打开和关闭它?

代码看起来像这样:

def run_func(elem):
    driver = webdriver.Chrome(options=chrome_options, executable_path='./chromedriver')
    searcher(driver, elem) # Some other function that does stuff on the website
    driver.close()

def thread_cycle():
    pool = Pool(processes = 10)
    pool.map(run_func, website_list)

def main():
    thread_cycle()

标签: pythonseleniummultiprocessing

解决方案


推荐阅读