Come eseguire lo scraping di Google con Python

Come fare, Pitone, Scraping, 02.11.20225 minuti di lettura

Google è il più grande attore tra tutti i motori di ricerca quando si tratta di cercare informazioni su Internet. Secondo le stime, ogni giorno vengono effettuate oltre 3,5 miliardi di ricerche su Google Search. A noi (utenti di Google) vengono fornite solo alcune informazioni basate su Google Analytics e Google Ads. Google utilizza le sue API

Indice dei contenuti

Google è il più grande attore tra tutti i motori di ricerca quando si tratta di cercare informazioni su Internet. Secondo le stime, ogni giorno vengono effettuate oltre 3,5 miliardi di ricerche su Google Search. A noi (utenti di Google) vengono fornite solo alcune informazioni basate su Google Analytics e Google Ads. Google utilizza le sue API (Application Programming Interface) e sceglie essenzialmente le informazioni più preziose per noi in base alle sue ricerche e alle sue classifiche. Ma se volessimo scavare un po' più a fondo per capire quali informazioni sono veramente preziose per voi? 

Ecco la necessità dello scraping. Si può pensare a un Google scraper come a un modo per evidenziare i capitoli più importanti di un libro. Quando si analizza un libro di testo alla ricerca di informazioni, si tende a scegliere il testo che sarà più utile per la ricerca o l'esame. Ma il World Wide Web è più grande di un libro di 1000 pagine. Quindi, nel caso di Internet, Google scraper può essere il vostro occhio laser che cattura e raccoglie immediatamente i risultati più importanti sull'argomento che vi interessa. È possibile estrarre i risultati di ricerca di Google in base a parole chiave specifiche. Ad esempio, se si effettua uno scraper su Google utilizzando la parola chiave "leoni", il web scraper di Google vi fornirà un certo numero di URL di alto livello basati su tale parola chiave. Più parole chiave utilizzate, Google vi fornirà URL e dati più specifici. Più i dati sono specifici, più saranno adattati alle vostre esigenze. Ma prima di tutto cerchiamo di capire la necessità di effettuare lo scraping di Google.

Perché è necessario effettuare lo scraping di Google?

Si sa che Google è il principale punto di accesso a Internet per miliardi di persone e che quasi tutte le aziende vogliono apparire nei risultati di ricerca di Google. Le valutazioni e le recensioni di Google hanno un impatto enorme sui profili online delle aziende locali. Le agenzie di marketing che hanno molti clienti di diversi settori fanno molto affidamento su strumenti SEO (Search Engine Optimization) affidabili. Si tratta di strumenti che consentono di svolgere efficacemente diverse attività e di gestire e analizzare con successo i risultati. 

Di seguito sono riportati alcuni casi di utilizzo dello scraping di Google.

  • È possibile analizzare gli annunci per una determinata serie di parole chiave.
  • È possibile monitorare la concorrenza sia nei risultati organici che in quelli a pagamento.
  • È possibile creare un elenco di URL per parole chiave specifiche. 

Le aziende devono effettuare lo scraping di Google per i seguenti motivi.

  • Ottimizzazione dei motori di ricerca (SEO) - Lo scraping di Google mostra a un'azienda quanto in alto appare la pagina del suo sito web nella pagina dei risultati di Google e dà un'idea di quante parole chiave il sito web utilizza in ogni pagina. Più parole chiave utilizza un sito web, più in alto appare quella determinata pagina nella pagina dei risultati. Quindi, capire come utilizzare la SEO mantiene la vostra azienda altamente competitiva.
  • Marketing - Più vediamo il logo di Amazon sui nostri schermi, più è probabile che ci dirigiamo verso Amazon quando dobbiamo fare un acquisto. Lo scraping di Google aiuta a raccogliere dati su come i vostri concorrenti pubblicizzano i loro prodotti, su quali prodotti scelgono di pubblicizzare e su come i clienti rispondono a tali prodotti. 
  • Tattiche di vendita competitive - Lo scraping di Google aiuta la vostra azienda a creare tattiche di vendita più competitive. Se la vostra azienda si posiziona in basso in una particolare pagina di risultati, questo potrebbe farvi capire perché un particolare prodotto della vostra azienda non ha successo. Lo scraping vi dà una marcia in più rispetto alla concorrenza e vi offre nuovi modi per essere competitivi in questo mondo. 

Scraping di Google con Python

Vediamo come effettuare lo scrape di Google utilizzando Python.

Installazione

Per prima cosa, è necessario installare un fake-useragent. Esso cattura un useragent aggiornato con un database del mondo reale.

pip installare fake-useragent

Importazione di librerie

È necessario importare tutte le librerie necessarie, come mostrato di seguito.

importare pandas come pd
importare numpy come np
importare urllib
da fake_useragent import UserAgent
importare richieste
importare re
da urllib.request import Request, urlopen
da bs4 import BeautifulSoup

Utilizzare una parola chiave

È necessario costruire l'URL di Google utilizzando la parola chiave e il numero di risultati. Per farlo, seguiamo due passaggi:

Codificare la parola chiave in HTML utilizzando urllib Aggiungere l'id all'URL

Supponiamo che la nostra parola chiave sia "machine learning python".

parola chiave= "apprendimento automatico python"
html_keyword= urllib.parse.quote_plus(keyword)
stampare(html_keyword)

Quando stampiamo la parola chiave, otteniamo il seguente risultato.

Creare l'URL di Google

Dopo aver codificato la parola chiave in HTML usando urllib, dobbiamo costruire l'URL di Google come mostrato di seguito.

numero_di_risultati = 15
google_url = "https://www.google.com/search?q=" + html_keyword + "&num=" + str(numero_di_risultati)
print(google_url)

Otteniamo il seguente URL:

Ottenere i risultati

Ora dobbiamo premere l'URL e ottenere i risultati. Per ottenere questo risultato, Beautiful Soup e Fake Useragent ci aiuteranno.

ua = UserAgent()
response = requests.get(google_url, {"User-Agent": ua.random})
soup = BeautifulSoup(response.text, "html.parser")

Le espressioni regolari ci servono solo per estrarre le informazioni desiderate.

result = soup.find_all('div', attrs = {'class': 'ZINbbc'})
results=[re.search('\/url\?q\=(.*)\&sa',str(i.find('a', href = True)['href'])) for i in result if "url" in str(i)]
#this is because in rare cases we can't get the urls
links=[i.group(1) for i in results if i != None]
links

Ecco cosa otteniamo.

Ecco come è possibile effettuare lo scrape di Google utilizzando Python. 

Possiamo anche riassumere il codice precedente in un'unica funzione di scraper, come mostrato di seguito.

def google_results(keyword, n_results):
    query = keyword
    query = urllib.parse.quote_plus(query) # Format into URL encoding
    number_result = n_results
    ua = UserAgent()
    google_url = "https://www.google.com/search?q=" + query + "&num=" + str(number_result)
    response = requests.get(google_url, {"User-Agent": ua.random})
    soup = BeautifulSoup(response.text, "html.parser")
    result = soup.find_all('div', attrs = {'class': 'ZINbbc'})
    results=[re.search('\/url\?q\=(.*)\&sa',str(i.find('a', href = True)['href'])) for i in result if "url" in str(i)]
    links=[i.group(1) for i in results if i != None]
    return (links)

Qui google_results è la nostra funzione di scraper in cui passiamo la parola chiave e il numero di risultati come parametri e costruiamo l'URL di Google.

google_results('machine learning in python', 10)

Ecco cosa otteniamo.

Uso di deleghe

E se si desidera connettersi all'API di Google Ads? È possibile farlo attraverso un proxy, impostando la configurazione http_proxy nel file google-ads.yaml, come mostrato di seguito.

http_proxy: INSERT_PROXY_HERE

È possibile specificare http://user:pass@localhost:8082 come proxy. È anche possibile configurare l'impostazione del proxy in modo programmatico con l'aiuto dei metodi di GoogleAdsClient come:

  • load_from_dict
  • load_from_env
  • load_from_string

Ad esempio, 

config = {
  ...
  "http_proxy": "INSERT_PROXY_HERE",
}
googleads_client = GoogleAdsClient.load_from_dict(config)

È necessario impostare la variabile d'ambiente GOOGLE_ADS_HTTP_PROXY per usare un proxy dal metodo load_from_env.

Perché utilizzare i proxy di Google?

Di seguito sono riportate le ragioni per l'utilizzo dei proxy di Google.

  • Ottenere risultati rapidi e unici - Tutti i motori di ricerca, compreso Google, non vedono di buon occhio l'utilizzo di software automatizzati per estrarre risultati. Quando trovano diverse richieste di ricerca provenienti da un indirizzo IP, bloccano l'indirizzo IP e gli impediscono di accedere a qualsiasi dato. Quindi, con un intero gruppo di proxy privati unici e dedicati, non solo sarete in grado di utilizzare il software automatico per estrarre i risultati di ricerca di Google, ma sarete anche in grado di ottenere i dati in modo estremamente veloce.
  • Mantenere la privacy - I proxy di Google garantiscono che il vostro indirizzo IP originale sia sicuro e protetto e non sia soggetto a tentativi di hacking. Inoltre, assicurano che le informazioni sensibili contenute nel vostro computer siano conservate in un luogo sicuro.
  • Automazione - Il software di automazione funziona correttamente utilizzando proxy di buona qualità e non è necessario acquistare nient'altro oltre ai proxy dedicati e al software di automazione.

Conclusione

È possibile eseguire lo scrape di Google utilizzando Python per:

  • Analisi dei concorrenti
  • Creare collegamenti
  • Evidenziare la presenza sociale
  • Parole chiave di ricerca

Per lo scraping dei dati da Google, i proxy sono essenziali perché possono aiutare le aziende a migliorare il loro posizionamento sui motori di ricerca e a evitare che il loro IP Internet venga bloccato. È possibile utilizzare un intero gruppo di proxy dedicati per lo scraping di Google, che consentono di ottenere i dati in modo estremamente rapido.

Spero che abbiate capito come effettuare lo scrape di Google utilizzando Python.