Topic: [RISOLTO] Multithreads Selenium  (Letto 82 volte)

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

Offline tascio

  • python erectus
  • ***
  • Post: 188
  • Punti reputazione: 0
    • Mostra profilo
[RISOLTO] Multithreads Selenium
« il: Marzo 23, 2021, 16:07 »
Salve raga, ho una lista di oggetti, ogni oggetto esegue uno scraping web e interagisce con un db sqlite3. Vorrei che questi oggetti lavorassero assieme, non mi importa la sincronia perchè devono svolgere compiti a se, in modo da non doversi eseguire uno dopo l'altro e velocizzare cosi' il tutto.


for ogg in lista_oggetti:
    Process(ch.onair()).start()


Questo tentativo è stato fatto con
from multiprocessing import Process

ho una lista di oggetti, ogni ciclo richiamo la funzione onair() che esegue l'oggetto. La prima cosa che ogni oggetto fa è aprire una pagina web tramite Chromedriver + Selenium.
Quello che accade però è che mi si aprono tante finestre di Chrome quanti sono gli oggetti (correttamente) solo che solo una lavora e le altre finestre rimangono bianche finchè non finisce l'esecuzione quella precedente.
« Ultima modifica: Marzo 24, 2021, 15:56 da tascio »

Offline tascio

  • python erectus
  • ***
  • Post: 188
  • Punti reputazione: 0
    • Mostra profilo
[RISOLTO] Multithreads Selenium
« Risposta #1 il: Marzo 24, 2021, 15:56 »
Alla fine ho risolto cosi'

from multiprocessing.dummy import Pool

def esegui(ogg):
    ogg.onair()

pool.map(esegui,lista_check)


Ho passato a pool.map una funziona che riceve una lista di oggetti, la funzione richiama un metodo contenuto negli oggetti che starta il loro lavoro.