Web Scraping com Python e Selenium

Neste post, vamos analisar um exemplo de código Python que usa a biblioteca Selenium para fazer web scraping. O código realiza uma pesquisa no Google e salva os resultados em um arquivo de texto.

Importando as Bibliotecas Necessárias

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
import time

Neste trecho, estamos importando as bibliotecas necessárias para o nosso script. A biblioteca selenium é uma ferramenta poderosa para controlar um navegador através do programa. Usamos webdriver para conectar com o navegador, Keys para enviar teclas especiais para o navegador, e By para buscar elementos. A biblioteca time é usada para fazer o script esperar (pausar a execução) por alguns segundos.

Inicializando o WebDriver

driver = webdriver.Chrome()

Aqui, estamos inicializando o WebDriver e conectando ao Google Chrome. Você precisa ter o ChromeDriver instalado e configurado corretamente para que isso funcione.

Navegando para o Google

driver.get('http://www.google.com')

Usamos o método get do objeto driver para navegar para a página do Google.

Realizando uma Pesquisa

search_bar = driver.find_element(By.ID,'APjFqb')
search_bar.send_keys('spfc')
search_bar.send_keys(Keys.RETURN)

Primeiro, encontramos a barra de pesquisa na página do Google usando o método find_element e o ID do elemento. Em seguida, usamos o método send_keys para digitar ‘spfc’ na barra de pesquisa. Finalmente, simulamos a tecla Enter para realizar a pesquisa.

Aguardando os Resultados da Pesquisa

time.sleep(5)

Aqui, fazemos uma pausa de 5 segundos para dar tempo à página de carregar os resultados da pesquisa.

Obtendo os Resultados da Pesquisa

search_results = driver.find_elements(By.ID,'APjFqb')

Usamos o método find_elements para obter todos os elementos que correspondem ao ID fornecido. Neste caso, estamos obtendo todos os resultados da pesquisa.

Salvando os Resultados em um Arquivo de Texto

with open('search_results.txt', 'w', encoding='utf-8') as f:
    for result in search_results:
        f.write(result.text + '\n\n')
Aqui, abrimos um arquivo de texto chamado ‘search_results.txt’ no modo de escrita. Em seguida, percorremos cada resultado da pesquisa e escrevemos o texto do resultado no arquivo. Cada resultado é seguido por duas quebras de linha para facilitar a leitura.

Fechando o Navegador

driver.quit()
Finalmente, fechamos o navegador usando o método quit do objeto driver

Código final.


from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
import time

# Inicialize o driver do navegador (neste caso, estou usando o Chrome)
driver = webdriver.Chrome()

# Vá para o Google
driver.get('http://www.google.com')

# Encontre a barra de pesquisa e pesquise 'spfc'
search_bar = driver.find_element(By.ID,'APjFqb')
search_bar.send_keys('spfc')
search_bar.send_keys(Keys.RETURN)

# Aguarde alguns segundos para que a página carregue os resultados
time.sleep(5)

# Obtenha os resultados da pesquisa
search_results = driver.find_elements(By.ID,'APjFqb')

# Abra o arquivo txt e escreva os resultados da pesquisa
with open('search_results.txt', 'w', encoding='utf-8') as f:
    for result in search_results:
        f.write(result.text + '\n\n')

# Feche o navegador
driver.quit()

Espero que este post tenha sido útil para entender como usar Python e Selenium para fazer web scraping. Lembre-se de sempre respeitar as políticas dos sites que você está raspando e usar essas ferramentas de maneira responsável. Feliz raspagem de dados!