AVVISO IMPORTANTE: Dato l'elevato numero di richieste, Eternal Curiosity non può accettare nuovi clienti, sia che si tratti di consulenze scritte che di ottimizzazione SEO diretta. Valutiamo solo casi eccezionali e ad alto budget. Per informazioni, vi invitiamo a scriverci a [email protected]

Questo articolo apparteneva al vecchio blog (blog.danilopetrozzi.it), per cui le informazioni potrebbero non essere più aggiornate ed attendibili.

Python: come fare scraping dei risultati di ricerca di Google

In un articolo precedente ho parlato di come creare uno web scraper in Python per riuscire a estrapolare determinate informazioni dai sorgenti.

Oggi faremo qualcosa di molto più pratico e utile, sopratutto per chi lavora nella SEO. Oggi vi mostrerò uno scraper che, data in input una o più keyword, restituirà i risultati di ricerca presenti in SERP.

Attenzione: alla fine dell’articolo, ti fornirò uno scraper in versione .exe che può essere lanciato anche senza avere/conoscere Python 🙂 Clicca qui per andare al paragrafo in questione!

Requisiti

Come già sapete, io utilizzo Python 3.4, l’ultima versione disponibile. Il modulo che oggi useremo per fare lo scraping vero e proprio si chiama GoogleScraper, scaricabile qui.

Oltre a GoogleScraper faremo uso dei moduli re, per alcuni regex, e di time, per la gestione dei delay.

Il codice

Attenzione: il “core” del codice è stato generato grazie al modulo GoogleScraper, ma la gestione del timing e l’output in CSV è una mia idea per cui, come ogni altra cosa presente su questo blog, il codice è fornito sotto licenza Creative Commons BY-NC-SA.

A differenza dell’altra volta, oggi non spiegherò dettagliatamente la costruzione del codice in Python. Per poter usare questo tipo di funzioni, dovete già avere un’infarinatura base di Python, altrimenti vi perdete subito.

Il codice completo è molto breve:

Spiegazione generale

Come prima cosa, nell’array “listakey“, inseriamo le keyword che ci interessano. Nell’esempio in alto, ho già messo “ristorante roma”, “ristorante milano” e così via.

Alla riga 20, è possibile alterare i parametri di scrape in base alle proprie esigenze. Se invece di 1000, avessi messo 10 su num_results_per_page, avrei ottenuto solo i primi 10 risultati di ogni keyword. (attenzione: a seguito di aggiornamenti recenti, il limite standard è comunque impostato a 100. Mettendo 200 o 300, il risultato non cambia, si avranno i primi 100 risultati per ogni keyword)

La riga 44 serve per generare un delay di 22 secondi tra uno scrape e un altro, al fine di evitare il ban di Google. Se usi la tua normale connessione, devi lasciare questo parametro, altrimenti dopo 2-3 minuti il tuo IP verrà bannato e non potrai fare più scraping. Se usi una serie di proxy per coprire questa applicazione, puoi letteramente fregartene 😀

I risultati vengono scritti in un file chiamato “risultati.txt” che viene creato/aggiornato nella stessa cartella in cui è presente lo script Python.

Output

Per ogni keyword, il mio script crea una nuova riga nel file CSV contenente:

  • la keyword cercata
  • il totale dei risultati
  • posizione in SERP del risultato
  • URL
  • Titolo
  • Description

L’output dell’esempio precedente (le 5 keyword “ristorante *”) è visibile aprendo questo file.

Anche se è un normale .TXT, il suo contenuto viene generato in modo da formare un .CSV valido al 100%. Vi basterà aprire quel file con Excel, OpenOffice Calc, ecc, e vedrete che tutto si incolonnerà alla perfezione. Diventando così:

risultato scrape gogle in python

Scraper base in formato .exe

Dato che non tutti conoscono Python ne tantomento lo hanno installato sul pc, ho deciso di compilare una versione molto basilare dello scraper in formato .exe, in modo da dare la possibilità a tutti di utilizzarlo.

A differenza della versione completa in Python, in questo caso non è possibile fornire una lista di keyword, ma potrai inserirne una sola per volta. Verranno estrapolati i primi 100 risultati di Google (le prime 10 pagine).

Se dovessi vedere degli errori legati agli “index”, è una cosa abbastanza normale. Nel file risultati.txt, comunque, dovrebbe esserci l’output a prescindere! Ecco il link:

Puoi scaricare lo scraper per Windows cliccando qui!

Scompatta lo .zip in una cartella e lancia il file “scraper-danilopetrozzi.exe“. Nel prompt DOS che ti si apre, dovrai inserire la keyword da estrapolare e premere INVIO: fatto!

In pochissimi secondi avrai tutte le informazioni nel file “risultati.txt” della stessa cartella, che può essere aperto come un normale CSV da Excel, Calc, ecc.

Conclusione

Quello che ti ho mostrato è uno scraper veloce, rapido e intuitivo.

Grazie al CSV finale, hai a portata di mano tutti i dati che ti interessano, pronti per essere utilizzati per i tuoi scopi!

Dato che la scrittura del file “risultati.txt” non è in modalità “w” ma “a”, se interrompi uno scrape e ne crei uno nuovo, il vecchio file non verrà sovrascritto ma i dati verranno semplicemente aggiunti. In questo modo, puoi stoppare e riprendere lo scrape quando vuoi, senza che i dati precedentemente acquisiti vadano persi.

Spero ti sia stato d’aiuto. Enjoy 🙂

Danilo petrozzi

Ciao! Io sono Danilo Petrozzi, il fondatore di Eternal Curiosity. Oltre a essere un senior SEO Specialist e un Web Developer, è dall'età di 9 anni che mi appassiono a qualsiasi cosa ruoti intorno al web e all'informatica in generale.

Lascia un commento