multiprocessing и Selenium chromedriver как подружить

Хочу отпарсить сайт в несколько окон Хрома через селеинум. Но многопочтоность не отработывает.

Код вида:

from multiprocessing import Pool

def browser_start(profile):
    #Принимает профиль хрома
    #Запускает хром через хромдрайв
    #Возвращает запущенный Хром тип объекта <class 'selenium.webdriver.chrome.webdriver.WebDriver'>

def pasing_web(browser):
    #Принимает запущенную сессию хрома
    #Отработывает soors в BS с обходмами капчи и т.п., сохраняет в файл.

browser1=browser_start('profile_1')
browser2=browser_start('profile_2')

dataset=[browser1,browser2]

with Pool() as pool:
    result = pool.map(pasing_web,dataset)

Выдает ошибку:

Возникло исключение: AttributeError
Can't pickle local object '_createenviron.<locals>.encodekey'

В одно окно функции отработывают исправно, что-то методологически делаю неправльно, просьба подсказать.


Ответы (1 шт):

Автор решения: NETkuz

Ответ нашел тут: https://stackoverflow.com/questions/8804830/python-multiprocessing-picklingerror-cant-pickle-type-function

В коде нужно было заменить импорт с этого:

from multiprocessing import Pool

на это:

from multiprocessing.pool import ThreadPool as Pool

В руководствах по многопоточности об этом не говориться.

→ Ссылка