Задать вопрос
Этот вопрос закрыт для ответов, так как повторяет вопрос Как запусить парсинг selenium многопоточном режиме?
Shatoidil
@Shatoidil

Как запусить парсинг selenium многопоточном режиме?

Не могу разобраться, как запустить webdriver в несколько потоков.

Хочу парсить два сайта одновременно. Есть список ean выглядит
однопоточно, это выглядит так

def labirint(eanlist):
        pricelist = []
        for ean in eanlist:
            try:
                driver.get("http://www.labirint.ru/search/" + ean + "/?labsearch=1")            
                time.sleep(1)
                labirintBookState(driver)
                if driver.find_element_by_xpath(labirint_xpath_state).is_displayed():
                    x = driver.find_element_by_xpath(labirint_xpath)
                    price_int = int(x.text)
                    pricelist.append(price_int)
                else:
                    pricelist.append("")
            except:
                pricelist.append("")
        return pricelist

    def chitayGorod(eanlist):
        chitay_gorod_pricelist = []
        for ean in eanlist:
            try:

                driver.get("https://www.chitai-gorod.ru/search/result/?q=" + ean + "&page=1")
                time.sleep(1)
                if driver.find_element_by_xpath(chitay_gorod_xpath).is_displayed():
                    price = driver.find_element_by_xpath(chitay_gorod_xpath)
                    price_int = int(re.search(r'\d+', price.text).group())
                    chitay_gorod_pricelist.append(price_int)
                else:
                    chitay_gorod_pricelist.append("")
            except:
                chitay_gorod_pricelist.append("")
        return chitay_gorod_pricelist

option = webdriver.ChromeOptions()
chrome_prefs = {}
option.experimental_options["prefs"] = chrome_prefs
chrome_prefs["profile.default_content_settings"] = {"images": 2}
chrome_prefs["profile.managed_default_content_settings"] = {"images": 2}

driver = webdriver.Chrome(executable_path='C:\priceUpdater\ChromeDriver\chromedriver.exe', chrome_options=option)


if __name__ == "__main__":
    list_ean = getFileEan()

    labirint = labirint(list_ean)
    chitayGorod = chitayGorod(list_ean)
    print(datetime.now() - startTime)
    print("ok!")


Методы в цикле пробегаются по сайтам и собирают данные.

Как мне реализовать, чтобы два процесса driver загружались одновременно и один парсил chitayGorod, а другой labirint ?

Попробовал, то что находил в интернете по этой теме и ничего подходящего не нашел.
  • Вопрос задан
  • 147 просмотров
Подписаться 1 Простой
Ответы на вопрос 1
@shadrin_ss
Junior
Документация на multiprocessing
https://docs.python.org/2/library/multiprocessing.html
Ответ написан
Ваш ответ на вопрос

Вопрос закрыт для ответов и комментариев

Потому что уже есть похожий вопрос.
Похожие вопросы