volete aiutarci? Ecco le opzioni disponibili:","Crunchbase","Chi siamo","Grazie a tutti per l'incredibile supporto!","Collegamenti rapidi","Programma di affiliazione","Premio","ProxyScrape prova premium","Controllore di proxy online","Tipi di proxy","Paesi proxy","Casi d'uso del proxy","Importante","Informativa sui cookie","Esclusione di responsabilità","Informativa sulla privacy","Termini e condizioni","Media sociali","Facebook","LinkedIn","Twitter","Quora","Telegramma","Discordia","\n © Copyright 2024 - Thib BV | Brugstraat 18 | 2812 Mechelen | Belgio | IVA BE 0749 716 760\n"]}
Nel mondo di oggi, tutti fanno uso delle nuove tecnologie. Con l'aiuto del web scraping è possibile accedere ai dati strutturati in modo automatizzato. Ad esempio, è possibile utilizzare il web scraping per: Lo scorrimento infinito, noto anche come endless scrolling, è una tecnica di web design che i siti web utilizzano spesso con AJAX o Javascript.
Nel mondo di oggi, tutti fanno uso delle nuove tecnologie. Con l'aiuto del web scraping è possibile accedere ai dati strutturati in modo automatizzato. Ad esempio, è possibile utilizzare il web scraping per:
Lo scorrimento infinito, noto anche come endless scrolling, è una tecnica di web design che i siti web utilizzano spesso con AJAX o Javascript per caricare dinamicamente contenuti aggiuntivi quando l'utente scorre verso il fondo della pagina web. Questa tecnica ha guadagnato popolarità grazie al suo successo sui siti di social media. Ad esempio, lo scorrimento infinito in Twitter è prodotto attraverso il caricamento asincrono. Twitter effettua chiamate AJAX dopo il caricamento della pagina per aggiungere continuamente nuovi contenuti durante lo scorrimento. Sebbene lo scorrimento infinito abbia molti vantaggi, non è raccomandato per attività di ricerca orientate a obiettivi che richiedono di individuare contenuti particolari.
Cerchiamo innanzitutto di capire quali sono i vantaggi dello scraping di pagine a scorrimento infinito.
Di seguito sono riportati alcuni dei motivi per effettuare lo scraping di pagine a scorrimento infinito.
Oltre ai vantaggi di cui sopra, lo scraping di pagine a scorrimento infinito presenta anche alcuni svantaggi:
Vediamo come effettuare lo scraping di pagine a scorrimento infinito utilizzando Python con l'aiuto dei passaggi indicati di seguito.
È necessario importare la libreria Selenium.
da selenium import webdriver
da selenium.webdriver.common.keys import Keys
importare tempo
È necessario scegliere il browser che si desidera utilizzare. Noi sceglieremo Chrome perché offre più opzioni di Firefox.
def get_selenium():
options = webdriver.ChromeOptions()
options.add_argument('--ignore-certificate-errors')
options.add_argument('--incognito')
options.add_argument('headless')
driver = webdriver.Chrome(chrome_options=opzioni)
return (driver)
L'argomento headless menzionato in precedenza è piuttosto importante. Selenium non aprirà Chrome in una nuova finestra quando viene eseguito headless in Python. Tuttavia, se si riscontra un problema durante lo scraping, è possibile commentare l'opzione headless e vedere cosa succede in Chrome e cosa viene caricato sulla pagina.
Possiamo omettere i due flag: ignore-certificate-errors e incognito.
Se si incontra un captcha o un cookie banner che impedisce il caricamento della pagina, si può fare clic su OK e procedere normalmente alla pagina. Tuttavia, se il browser si chiude inaspettatamente, si può usare time.sleep() per mettere in pausa il codice e prendersi tutto il tempo necessario per il debug.
Per risolvere il problema dello scorrimento infinito, è necessario esaminare la struttura HTML della pagina e seguire i passaggi indicati di seguito.
Per una migliore comprensione, si può considerare l'esempio seguente.
selenium = get_selenium()
selenium.get("your/url")
last_elem = '';
mentre Vero:
current_last_elem = "#my-div > ul > li:last-child"
scroll = "document.querySelector(\'" + current_last_elem + "\').scrollIntoView();"
selenium.execute_script(scroll)
time.sleep(3)
se (last_elem == current_elem)
pausa
altrimenti
last_elem = current_elem
Nel codice precedente, abbiamo usato jQuery e Javascript all'interno di Python.
Qui,
selenium.get("your/url.com/{0}".format(keyword))
"document.querySelector(\'" + .. + "\").scrollIntoView();"
Il formato deve essere corretto, quindi è necessario prestare attenzione alle virgolette singole e doppie e ai caratteri di escape.
Alcuni dei problemi che si verificano frequentemente durante lo scorrimento infinito sono i seguenti:
È possibile attivare uno script js da Python e ottenere un elenco come risultato.
Ad esempio, possiamo usare il codice seguente per ottenere le fonti di tutte le immagini della pagina.
js_script = '''\
var jslist = []
document.querySelectorAll('img').forEach(i => jslist.push(i.src));
restituire jslist;
'''
python_list = selenium.execute_script(js_script)
Nel codice sopra riportato,
Possiamo utilizzare lo stesso approccio per i link href:
Successivamente, possiamo eseguire lo script con selenium.execute_script(). Possiamo quindi immagazzinare il valore restituito da js in una variabile python, cioè python_list.
Ecco come possiamo effettuare lo scraping di pagine a scorrimento infinito utilizzando Python.
Si sa che un proxy è un server di terze parti che funge da intermediario tra un client che richiede una risorsa e un server che la fornisce. Se si desidera utilizzare i proxy con Selenium e Python, è possibile utilizzare le seguenti righe di codice.
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--proxy-server=%s'% hostname +": "+port)
driver = webdriver.Chrome(chrome_options=chrome_options)
Per gestire lo scorrimento infinito, si può usare scroll-proxy, che supporta lo scorrimento programmatico delle viste scrollabili all'interno di una gerarchia di viste. Se si usa npm, si può installare scroll-proxy usando il comando seguente. Utilizzeremo js per dimostrare l'uso di scroll-proxy.
npm install scroll-proxy--save
Dopo aver installato scroll-proxy, è possibile istanziare un oggetto ScrollProxy utilizzando il codice seguente.
var myScroll = new ScrollProxy();
Si può notare che non è stato passato alcun parametro al costruttore di ScrollProxy, perché esso segnalerà le azioni per impostazione predefinita quando l'utente scorre la pagina.
Tuttavia, se si desidera ottenere aggiornamenti quando l'utente scorre all'interno di un elemento HTML specifico, è necessario passarlo nel costruttore.
var myDiv = document.querySelector('.scrollable');
var myDivScroll = new ScrollProxy(myDiv);
Di seguito sono riportati alcuni motivi per utilizzare i proxy durante lo scraping a scorrimento infinito.
Abbiamo detto che lo scorrimento infinito è preferibile quando l'utente non è alla ricerca di informazioni specifiche. I siti web di notizie e i feed dei social media che generano costantemente nuovi contenuti possono beneficiare dello scorrimento infinito. D'altro canto, le pagine aziendali e i siti di e-commerce non sono buoni candidati per lo scorrimento infinito, poiché gli utenti cercano informazioni specifiche. Inoltre, abbiamo discusso i passaggi necessari per lo scraping di pagine a scorrimento infinito utilizzando Selenium. Per gestire lo scorrimento infinito possiamo anche utilizzare i proxy residenziali a rotazione, che ci aiutano a evitare i captchas e a filtrare le richieste di intestazione sospette.
Spero che abbiate capito come effettuare lo scraping di pagine a scorrimento infinito utilizzando Python.