Como fazer scraping do Google usando Python

Como fazer, Python, Raspagem, Mar-06-20245 minutos de leitura

O Google é o maior ator entre todos os motores de busca quando se trata de pesquisar informações na Internet. De acordo com as estimativas, são efectuadas diariamente mais de 3,5 mil milhões de pesquisas no Google Search. Nós (utilizadores do Google) só recebemos uma certa quantidade de informações com base no Google Analytics e no Google Ads. A Google utiliza a sua API

Índice

O Google é o maior ator entre todos os motores de busca quando se trata de pesquisar informações na Internet. De acordo com as estimativas, são efectuadas diariamente mais de 3,5 mil milhões de pesquisas no Google Search. Nós (utilizadores do Google) só recebemos uma certa quantidade de informações com base no Google Analytics e no Google Ads. O Google utiliza a sua API (Interface de Programação de Aplicações) e escolhe essencialmente as informações mais valiosas para nós com base nas suas pesquisas e classificações. Mas e se quisermos aprofundar um pouco mais as informações que são verdadeiramente valiosas para si? 

É aqui que surge a necessidade de fazer scraping. Pode pensar num Google scraper como uma forma de destacar os capítulos mais importantes de um livro. Quando procura informações num livro de texto, tende a escolher o texto que será mais valioso para a sua investigação ou teste. Mas a World Wide Web é maior do que um livro de 1000 páginas. Por isso, no caso da Internet, o Google scraper pode ser o seu olho laser que capta e recolhe imediatamente os principais resultados sobre o tema que lhe interessa. Pode extrair resultados de pesquisa do Google com base em palavras-chave específicas. Por exemplo, se fizer um scraper do Google utilizando a palavra-chave "leões", o web scraper do Google fornecer-lhe-á um determinado número de URLs com melhor classificação com base nessa palavra-chave. Quanto mais palavras-chave utilizar, o Google fornecer-lhe-á URLs e dados mais específicos. Quanto mais específicos forem os dados, mais serão adaptados às suas necessidades. Mas comecemos por perceber a necessidade de fazer scraping do Google.

Porque é que precisa de fazer scraping do Google?

Sabe que o Google é o principal ponto de entrada na Internet para milhares de milhões de pessoas e que quase todas as empresas querem aparecer nos resultados da Pesquisa Google. As classificações e críticas do Google têm um enorme impacto nos perfis online das empresas locais. As agências de marketing que têm muitos clientes de diferentes sectores dependem fortemente da obtenção de ferramentas de SEO (Search Engine Optimization) fiáveis. Estas ferramentas são um meio de realizar várias tarefas de forma eficaz e um meio de gerir e analisar os resultados com êxito. 

Seguem-se alguns dos casos de utilização da recolha de dados do Google.

  • Pode analisar anúncios para um determinado conjunto de palavras-chave.
  • Pode monitorizar a sua concorrência tanto nos resultados orgânicos como nos resultados pagos.
  • Pode criar uma lista de URLs para palavras-chave específicas. 

As empresas precisam de fazer scraping do Google pelas seguintes razões.

  • Otimização para motores de busca (SEO) - A recolha de dados do Google mostra a uma empresa a altura em que a página do seu sítio Web aparece na página de resultados do Google e dá uma ideia do número de palavras-chave que o sítio Web utiliza em qualquer página. Quanto mais palavras-chave um sítio Web utilizar, maior será a posição dessa página na página de resultados. Assim, saber como utilizar a SEO mantém a sua empresa altamente competitiva.
  • Marketing - Quanto mais virmos o logótipo da Amazon nos nossos ecrãs, maior será a probabilidade de irmos à Amazon quando precisarmos de fazer uma compra. O Google scraping ajuda a recolher dados sobre a forma como os seus concorrentes anunciam os seus produtos, que produtos escolhem para anunciar e como os clientes reagem a esses produtos. 
  • Tácticas de vendas competitivas - A recolha de dados do Google ajuda a sua empresa a criar tácticas de vendas mais competitivas. Se a sua empresa tiver uma classificação baixa numa determinada página de resultados, poderá ficar a saber porque é que um determinado produto da sua empresa não é bem sucedido. A recolha de dados dá-lhe uma vantagem sobre a sua concorrência e oferece novas formas de ser competitivo neste mundo. 

Raspagem do Google usando Python

Vamos ver como podemos fazer scraping do Google usando python.

Instalação

Primeiro, é necessário instalar um agente de utilizador falso. Este obtém um useragent atualizado com uma base de dados do mundo real.

pip install fake-useragent

Importar bibliotecas

É necessário importar todas as bibliotecas necessárias, como se mostra abaixo.

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

Utilizar uma palavra-chave

Tem de construir o URL do Google utilizando a sua palavra-chave e o número de resultados. Para o fazer, vamos seguir os dois passos seguintes:

Codificar a palavra-chave em HTML utilizando urllibAdicionar o id ao URL

Suponhamos que a nossa palavra-chave é "machine learning python".

palavra-chave= "aprendizagem automática python"
html_keyword= urllib.parse.quote_plus(keyword)
imprimir(html_palavra-chave)

Quando imprimimos a palavra-chave, obtemos o seguinte resultado.

Criar o URL do Google

Depois de codificar a palavra-chave em HTML utilizando a urllib, temos de criar o URL do Google, como se mostra abaixo.

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

Obtemos o seguinte URL:

Obter os resultados

Agora, temos de aceder ao URL e obter os resultados. Para isso, o Beautiful Soup e o Fake Useragent vão ajudar-nos.

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

Só precisamos das expressões regulares para extrair as informações que pretendemos.

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

Eis o que obtemos.

É assim que se pode fazer scraping do Google utilizando Python. 

Também podemos resumir o código acima numa única função de raspagem, como mostrado abaixo.

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)

Aqui, google_results é a nossa função de raspagem, na qual passamos a palavra-chave e o número de resultados como parâmetros e construímos o URL do Google.

google_results('aprendizagem automática em python', 10)

Eis o que obtemos.

Utilização de procuradores

E se você quiser se conectar à API do Google Ads? Pode fazê-lo através de um proxy, definindo a configuração http_proxy no seu ficheiro google-ads.yaml, conforme mostrado abaixo.

http_proxy: INSERT_PROXY_HERE

Pode especificar http://user:pass@localhost:8082 como um proxy. Também pode configurar a definição de proxy de forma programática com a ajuda dos métodos GoogleAdsClient como:

  • load_from_dict
  • load_from_env
  • load_from_string

Por exemplo, 

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

É necessário definir a variável de ambiente GOOGLE_ADS_HTTP_PROXY para utilizar um proxy a partir do método load_from_env.

Porquê utilizar o Google Proxies?

Seguem-se as razões para utilizar os proxies do Google.

  • Obter resultados rápidos e únicos - Todos os motores de busca, incluindo o Google, desaprovam a utilização de softwares automatizados para extrair resultados. Quando encontram vários pedidos de pesquisa provenientes de um endereço IP, bloqueiam o endereço IP e impedem-no de aceder a quaisquer dados. Assim, com um lote completo de proxies privados exclusivos e dedicados, não só poderá utilizar o software automatizado para extrair os resultados de pesquisa do Google, como também poderá obter os dados de forma extremamente rápida.
  • Manter a privacidade - Os proxies do Google garantem que o seu endereço IP original estará seguro e protegido e não será suscetível a quaisquer tentativas de pirataria informática. Asseguram também que as informações sensíveis no seu computador podem ser mantidas num local seguro.
  • Automação - O software de automação funciona corretamente utilizando proxies de boa qualidade e não é necessário adquirir mais nada para além dos proxies dedicados e do software de automação.

Conclusão

É possível fazer scraping do Google utilizando Python para:

  • Análise da concorrência
  • Criação de ligações
  • Destacar a presença social
  • Pesquisa de palavras-chave

Ao extrair dados do Google, os proxies são essenciais, pois podem ajudar as empresas a melhorar a sua classificação nos motores de busca e evitar que o seu IP da Internet seja bloqueado. Pode utilizar um lote inteiro de proxies dedicados para extrair dados do Google e estes ajudam-no a obter os dados de forma extremamente rápida.

Espero que tenha percebido como fazer scrape do Google usando Python.