• Staff Tecnico

    [Selenium] Delucidazione sulla logica di: "Selenium Remote Driver"

    @stefano-dev ciao e scusami se arrivo con così tanto ritardo 😄

    Quello che vuoi fare tu lo puoi fare con Selenium (in php ma anche in python) ma anche con Puppeter.

    Il tuo script messo in cron sul server fa partire un browser headless sul server stesso che esegue le operazioni e tira fuori il response.

    Attenzione però, quando esegui queste operazioni di fatto sei un bot e se la web app su cui esegui i comandi ha sistemi per riconoscere i bot potresti trovarti un captcha dopo qualche visita.

    In questo caso devi pensare a sfruttare proxy o a fare un po' di rotazione degli ip (o del server)


  • Staff Tecnico

    Ogni quanto effettui queste operazioni? Quanto tempo ci mette lo script ad eseguire tutto


  • Staff Tecnico

    @stefano-dev secondo me la cosa migliore, anche per capire come funziona tutto quanto il flusso, è di prenderti una VPS in qualche cloud provider e iniziare a giocare con gli headless browser.

    Io in passato ho utilizzato Selenium + Geko Driver (e in alcuni casi BeatifulSoup) con Python o Puppeter con nodejs ma penso che il principio sia lo stesso anche se utilizzi PHP.

    Il tuo script dovrebbe aprire una nuova istanza del browser in modalità headless e quindi senza una GUI per ogni chiamata che riceve.

    Come riceve le chiamate lo devi valutare tu, potresti valutare di eseguire n browser quante sono le richieste o un singolo browser che svuota una coda di operazioni. Chiaramente in base alla scelta dovrai mettere in conto di sfruttare più o meno risorse.

    Non so se ho risposto un po' alle tuo domande, fammi sapere 😄


  • Staff Tecnico

    @stefano-dev rispondo alle varie domande

    1. Usare una o più VPS ti permette di essere più flessibile e chiaramente abbassare i costi, lambdatest non lo conosco ma penso che ti dia già parte del lavoro fatto quindi chiaramente ha costi più alti.
    2. Senza GUI perchè in questo modo utilizzi meno risorse e puoi prendre una o più VPS più piccole. Facebook supporta la navigazione headless senza problemi
    3. Allora devi strutturare bene l'infrastruttura che vuoi usare, per ridurre il più possibile il rischio di ban (anche se comunque in rischio non scompare) potresti valutare la creazione di più VPS piccole magari anche su datacenter e region differenti in modo tale da avere indirizzi IP diversi e mettere una coda che esegue le varie richieste assegnando una VPS a uno o più account.

    In ogni caso non escludo che il rischio di ban ci sia, se non a livello di account a livello di IP, metti in conto quindi di ciclare le macchine per avere sempre IP "freschi" (potresti utilizzare Terraform o sistemi simili per fare questa cosa)