Cómo scrapear Google con Python

Cómo hacerlo, Python, Scraping, Nov-15-20225 minutos de lectura

Google es el mayor actor entre todos los motores de búsqueda cuando se trata de buscar información en Internet. Según las estimaciones, cada día se realizan más de 3.500 millones de búsquedas en Google Search. Nosotros (los usuarios de Google) sólo recibimos una cierta cantidad de información basada en Google Analytics y Google Ads. Google utiliza su API

Índice

Google es el mayor actor entre todos los motores de búsqueda cuando se trata de buscar información en Internet. Según las estimaciones, cada día se realizan más de 3.500 millones de búsquedas en Google Search. Nosotros (los usuarios de Google) sólo recibimos una cierta cantidad de información basada en Google Analytics y Google Ads. Google utiliza su API (Interfaz de Programación de Aplicaciones) y esencialmente elige la información más valiosa para nosotros basándose en sus investigaciones y clasificaciones. Pero, ¿y si queremos profundizar un poco más en qué información es realmente valiosa para ti? 

Aquí surge la necesidad del scraping. Puedes pensar en un Google scraper como una forma de destacar los capítulos más importantes de un libro. Cuando escaneas un libro de texto en busca de información, tiendes a elegir el texto que será más valioso para tu investigación o examen. Pero la World Wide Web es más grande que un libro de 1000 páginas. Así que, en el caso de Internet, Google scraper puede ser tu ojo enfocado por un láser que capta y recopila inmediatamente los mejores resultados sobre el tema que te interesa. Puedes extraer los resultados de búsqueda de Google basándote en palabras clave específicas. Por ejemplo, si realizas un scraping en Google utilizando la palabra clave "leones", el raspador web de Google te ofrecerá un determinado número de las URL mejor valoradas basadas en esa palabra clave. Cuantas más palabras clave utilices, Google te proporcionará URL y datos más específicos. Cuanto más específicos sean los datos, más se adaptarán a sus necesidades. Pero entendamos primero la necesidad de scrapear Google.

¿Por qué es necesario scrapear Google?

Usted sabe que Google es el principal punto de entrada a Internet para miles de millones de personas, y casi todas las empresas quieren aparecer en los resultados de búsqueda de Google. Las valoraciones y reseñas de Google tienen un enorme impacto en los perfiles en línea de las empresas locales. Las agencias de marketing que tienen muchos clientes de diferentes sectores dependen en gran medida de la obtención de herramientas SEO (optimización de motores de búsqueda) fiables. Son un medio para realizar diversas tareas con eficacia y un medio para gestionar y analizar los resultados con éxito. 

A continuación se describen algunos casos de uso del scraping de Google.

  • Puede analizar anuncios para un conjunto determinado de palabras clave.
  • Puede supervisar a su competencia tanto en los resultados orgánicos como en los de pago.
  • Puede crear una lista de URL para palabras clave específicas. 

Las empresas necesitan scrapear Google por las siguientes razones.

  • Optimización de motores de búsqueda (SEO) - El scraping de Google muestra a una empresa en qué posición aparece la página de su sitio web en la página de resultados de Google y da una idea de cuántas palabras clave utiliza su sitio web en cualquier página. Cuantas más palabras clave utilice un sitio web, más arriba aparecerá esa página concreta en la página de resultados. Por lo tanto, entender cómo utilizar el SEO mantiene su negocio altamente competitivo.
  • Marketing - Cuanto más vemos el logotipo de Amazon en nuestras pantallas, más probable es que nos dirijamos a Amazon cuando necesitemos hacer una compra. El scraping de Google ayuda a recopilar datos sobre cómo anuncian sus productos sus competidores, qué productos eligen anunciar y cómo responden los clientes a esos productos. 
  • Tácticas de venta competitivas: el scraping de Google ayuda a su empresa a crear tácticas de venta más competitivas. Si su empresa ocupa una posición baja en una página de resultados en particular, podría dar una idea de por qué un producto concreto de su empresa no tiene éxito. El scraping le da una ventaja sobre su competencia y le ofrece nuevas formas de ser competitivo en este mundo. 

Google Scraping con Python

Veamos cómo podemos scrapear Google usando python.

Instalación

Primero, necesitas instalar un falso-useragent. Coge useragent actualizado con una base de datos del mundo real.

pip install fake-useragent

Bibliotecas de importación

Tiene que importar todas las bibliotecas necesarias, como se muestra a continuación.

importar pandas como pd
import numpy como np
import urllib
from fake_useragent import UserAgent
import peticiones
import re
from urllib.request import Request, urlopen
from bs4 import BeautifulSoup

Utilice una palabra clave

Tienes que construir la URL de Google utilizando tu palabra clave y el número de resultados. Para ello, vamos a seguir los dos pasos:

Codificar la palabra clave en HTML utilizando urllibAñadir el id a la URL

Suponemos que nuestra palabra clave es "machine learning python".

keyword= "aprendizaje automático python"
html_keyword= urllib.parse.quote_plus(keyword)
imprimir(html_palabra_clave)

Cuando imprimimos la palabra clave, obtenemos el siguiente resultado.

Crear la URL de Google

Después de codificar la palabra clave en HTML utilizando urllib, tenemos que construir la URL de Google como se muestra a continuación.

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

Obtenemos la siguiente URL:

Obtener resultados

Ahora, tenemos que darle a la URL y obtener los resultados. Para lograr esto, Beautiful Soup y Fake Useragent nos ayudarán con eso.

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

Sólo necesitamos las expresiones regulares para extraer la información que queremos.

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

Esto es lo que tenemos.

Así es como puedes scrapear Google usando Python. 

También podemos resumir el código anterior en una única función scraper, como se muestra a continuación.

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)

Aquí google_results es nuestra función scraper en la que pasamos la palabra clave y el número de resultados como parámetros y construimos la URL de Google.

google_results('aprendizaje automático en python', 10)

Esto es lo que tenemos.

Uso de apoderados

¿Qué ocurre si desea conectarse a la API de Google Ads? Puede hacerlo a través de un proxy estableciendo la configuración http_proxy en su archivo google-ads.yaml como se muestra a continuación.

http_proxy: INSERT_PROXY_HERE

Puede especificar http://user:pass@localhost:8082 como proxy. También puede configurar la configuración de proxy mediante programación con la ayuda de métodos GoogleAdsClient como:

  • cargar_desde_dict
  • load_from_env
  • load_from_string

Por ejemplo, 

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

Debe establecer la variable de entorno GOOGLE_ADS_HTTP_PROXY para utilizar un proxy del método load_from_env.

¿Por qué utilizar proxies de Google?

A continuación se exponen las razones para utilizar los proxies de Google.

  • Obtenga resultados rápidos y únicos - Todos los motores de búsqueda, incluido Google, desaprueban el uso de programas automatizados para extraer resultados. Cuando encuentran varias consultas de búsqueda procedentes de una dirección IP, bloquean la dirección IP y le impiden acceder a cualquier dato. Por lo tanto, con un lote completo de proxies privados únicos y dedicados, no sólo podrá utilizar el software automatizado para extraer los resultados de búsqueda de Google, sino que también podrá obtener los datos extremadamente rápido.
  • Mantener la privacidad- Los proxies de Google garantizan que su dirección IP original estará a salvo y segura y no será susceptible de ningún intento de pirateo. También se asegurarán de que la información sensible en su computadora se puede mantener en un lugar seguro.
  • Automatización - El software de automatización funciona correctamente utilizando proxies de buena calidad, y no necesita comprar nada más junto con tener los proxies dedicados y el software de automatización.

Conclusión

Puedes scrapear Google usando Python para:

  • Análisis de la competencia
  • Construir vínculos
  • Destacar la presencia social
  • Palabras clave de búsqueda

A la hora de obtener datos de Google, los proxies son esenciales, ya que pueden ayudar a las empresas a mejorar su clasificación en los motores de búsqueda y evitar que se bloquee su IP de Internet. Puedes utilizar un lote completo de proxies dedicados para el scraping de Google, y te ayudarán a obtener los datos extremadamente rápido.

Espero que hayas entendido cómo scrapear Google usando Python.