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!