Я пытаюсь использовать многопроцессорность с использованием селена в Python.Мой код выглядит следующим образом:
from selenium import webdriver
from multiprocessing import Pool
import xlwings as xw
driver = webdriver.Chrome('chromedriver.exe')
driver.get("https://example.com")
wb = xw.Book('my_file.xlsm')
sht = wb.sheets["Sheet1"]
final_list = []
search = driver.find_element_by_id("ContentPlaceHolder1_txtByName")
for item in search:
z = item.find_element_by_class_name("valuetext")
info = z.find_element_by_tag_name("span")
final_list.append(info.text)
def automate(num):
col = num
list_item = final_list[num]
sht.range(1, col).value = each
if __name__ == '__main__':
p = Pool(processes=4)
data = p.map(automate,range(1,20))
Проблема, с которой я сталкиваюсь, заключается в том, что для каждого из 4 процессов веб-страница снова открывается, и я не понимаю, почему.Если p.map
предназначается только для функции automate
, то почему остальная часть кода выполняется для каждого процесса?
Я все еще новичок в многопроцессорности, поэтому не уверен, что так оно и есть.Есть ли другой способ сделать это, чтобы гарантировать, что процессы нацелены только на саму функцию, или есть способ, которым я мог бы использовать многопоточность?