Primeiros Passos com Selenium Python para Raspagem de Dados Web

Última atualização em June 16, 2025

Quando comecei a me aventurar no mundo da raspagem de dados web, pensei: “Qual é o mistério? É só pegar o HTML e acabou, né?” Só que, com o tempo, percebi que extrair dados online virou uma habilidade indispensável para quem trabalha com vendas, e-commerce ou pesquisa de mercado. A internet está lotada de informações—são e esse número só cresce—e as empresas querem transformar esses dados em oportunidades reais. O problema? A maior parte dessas informações está escondida atrás de páginas dinâmicas, JavaScript e elementos interativos que ferramentas básicas não conseguem acessar.

É aí que entram soluções como o Selenium Python. Com o Selenium, dá para automatizar um navegador de verdade, conseguindo puxar dados até de sites dinâmicos e cheios de detalhes. Mas, como vou mostrar neste tutorial para quem está começando, nem sempre é tão simples quanto parece. Vamos passar juntos por um exemplo prático—raspando dados de produtos do —para você ver o Selenium funcionando na vida real. E, para facilitar ainda mais, vou apresentar também ferramentas com inteligência artificial, como o , que fazem o mesmo serviço em muito menos tempo (e quase sem precisar programar).

Por Que a Raspagem de Dados Web É Essencial (e Por Que Sites Dinâmicos Complicam Tudo)

Hoje em dia, raspar dados web não é mais só coisa de nerd. Virou parte do dia a dia de times de vendas, marketing, e-commerce e operações. Precisa monitorar preços da concorrência? Gerar leads? Analisar avaliações de clientes? A raspagem de dados é o caminho. Para você ter uma ideia, dizem que dados de preços são o principal alvo, e 80–90% das informações online são desestruturadas—ou seja, não dá para só copiar e colar no Excel.

Só que os sites modernos são dinâmicos. O conteúdo aparece via JavaScript, fica escondido atrás de botões ou exige rolar a página sem parar. Ferramentas simples como requests ou BeautifulSoup só enxergam o HTML estático—é como ler um jornal que nunca muda. Se o dado que você precisa só aparece depois de clicar, rolar ou fazer login, é preciso uma solução que simule o comportamento de um usuário de verdade.

O Que É Selenium Python e Por Que Usar na Raspagem de Dados?

Afinal, o que é Selenium Python? Resumindo, Selenium é uma ferramenta para automatizar navegadores. Com ela, você escreve scripts em Python que controlam um navegador real—clicando em botões, preenchendo formulários, rolando páginas e, claro, puxando dados que só aparecem depois dessas ações.

Como o Selenium Python Vai Além dos Raspadores Básicos

  • Selenium Python: Automatiza um navegador de verdade (tipo o Chrome), executa JavaScript, interage com elementos dinâmicos e espera o conteúdo carregar—igualzinho a um usuário comum.
  • Requests/BeautifulSoup: Só pega o HTML estático. É rápido e leve, mas não lida com JavaScript nem com conteúdo que aparece depois de interações.

Pense no Selenium como um assistente robótico: ele faz tudo que você faria no navegador, mas precisa de instruções detalhadas (e um pouco de paciência).

Quando Vale a Pena Usar Selenium?

  • Feeds com rolagem infinita (tipo redes sociais, listas de produtos)
  • Filtros ou menus interativos (como escolher tamanho de sapato no )
  • Conteúdo protegido por login ou pop-ups
  • Single Page Applications (React, Vue, etc.)

Se você só precisa de texto estático de uma página simples, BeautifulSoup resolve. Mas para qualquer coisa dinâmica, Selenium é o caminho certo.

Como Preparar o Ambiente para Usar Selenium Python

Antes de colocar a mão na massa, bora preparar o ambiente. Vou explicar cada passo—não precisa ser expert.

1. Instalando Python e Selenium

Primeiro, garanta que você tem o Python 3 instalado. Baixe no . Para conferir, rode:

python --version

Depois, instale o Selenium com pip:

pip install selenium

Assim você baixa a versão mais recente do Selenium para Python. Moleza, né?

2. Baixando e Configurando o ChromeDriver

O Selenium precisa de um “driver” para controlar o navegador. No caso do Chrome, é o .

  • Descubra a versão do seu Chrome: Abra o Chrome, vá em Menu → Ajuda → Sobre o Google Chrome.
  • Baixe o ChromeDriver correspondente: Pegue a versão que bate certinho com seu navegador.
  • Extraia e coloque o driver: Coloque o chromedriver.exe (ou equivalente para Mac/Linux) em uma pasta do PATH do sistema, ou na pasta do seu projeto.

Dica: Existem pacotes Python como webdriver_manager que baixam o driver automaticamente, mas para quem está começando, o manual funciona bem.

3. Testando a Instalação

Vamos garantir que está tudo certo. Crie um arquivo Python chamado test_selenium.py:

from selenium import webdriver

driver = webdriver.Chrome()
driver.get("https://www.example.com")
print(driver.title)
driver.quit()

Execute o script. O Chrome deve abrir, acessar , mostrar o título da página e fechar. Se aparecer a mensagem “O Chrome está sendo controlado por um software de teste automatizado”, parabéns—deu tudo certo!

Seu Primeiro Script com Selenium Python: Raspando o

Vamos colocar o Selenium para trabalhar. O objetivo: extrair nomes e preços de produtos da página .

Passo 1: Abrir o Navegador e Acessar a Página

from selenium import webdriver
from selenium.webdriver.common.by import By

driver = webdriver.Chrome()
driver.get("https://www.allbirds.com/collections/mens")

Passo 2: Esperar o Carregamento do Conteúdo Dinâmico

Sites dinâmicos podem demorar para carregar. Use as funções de espera do Selenium:

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

WebDriverWait(driver, 10).until(
    EC.presence_of_element_located((By.CSS_SELECTOR, "div.product-card"))
)

(É importante inspecionar o site para confirmar os seletores CSS corretos. Neste exemplo, vamos supor que os cards de produto usam div.product-card.)

Passo 3: Localizar Elementos e Extrair Dados

products = driver.find_elements(By.CSS_SELECTOR, "div.product-card")
print(f"Encontrados {len(products)} produtos")
data = []

for prod in products:
    name = prod.find_element(By.CSS_SELECTOR, ".product-name").text
    price = prod.find_element(By.CSS_SELECTOR, ".price").text
    data.append((name, price))
    print(name, "-", price)

Você verá algo assim:

Encontrados 24 produtos
Wool Runner - $110
Tree Dasher 2 - $135
...

Passo 4: Salvar os Dados em um Arquivo CSV

Vamos gravar os resultados em um CSV:

import csv
with open("allbirds_products.csv", "w", newline="") as f:
    writer = csv.writer(f)
    writer.writerow(["Nome do Produto", "Preço"])
    writer.writerows(data)

E lembre-se de fechar o navegador:

driver.quit()

Abra o CSV e pronto—nomes e preços dos produtos prontos para análise.

Como Driblar os Desafios Mais Comuns da Raspagem com Selenium Python

Na prática, a raspagem quase nunca é perfeita. Veja como contornar os principais obstáculos:

Esperando Elementos Carregarem

Sites dinâmicos podem ser lentos. Use esperas explícitas:

WebDriverWait(driver, 10).until(
    EC.visibility_of_element_located((By.CSS_SELECTOR, ".product-card"))
)

Assim, seu script só tenta capturar elementos depois que eles realmente existem.

Lidando com Paginação

Quer mais do que a primeira página de resultados? Faça um loop pelas páginas:

while True:
    try:
        next_btn = driver.find_element(By.LINK_TEXT, "Next")
        next_btn.click()
        WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.CSS_SELECTOR, ".product-card")))
    except Exception:
        break  # Não há mais páginas

Ou, para rolagem infinita:

import time
last_height = driver.execute_script("return document.body.scrollHeight")
while True:
    driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
    time.sleep(2)
    new_height = driver.execute_script("return document.body.scrollHeight")
    if new_height == last_height:
        break
    last_height = new_height

Lidando com Pop-ups e Logins

Pop-ups atrapalhando? Feche-os:

driver.find_element(By.CSS_SELECTOR, ".modal-close").click()

Automatizando login? Preencha os campos e envie:

driver.find_element(By.ID, "email").send_keys("user@example.com")
driver.find_element(By.NAME, "login").click()

Atenção: CAPTCHAs e autenticação em duas etapas são difíceis de automatizar.

Limitações do Selenium Python para Raspagem de Dados

Sendo realista—Selenium é potente, mas tem seus perrengues:

  • Lento: Cada página carrega um navegador completo, com imagens e scripts. Vai raspar 1.000 páginas? Prepare-se para esperar.
  • Puxa bastante recurso: Usa muita CPU e memória. Rodar vários navegadores ao mesmo tempo exige uma máquina parruda.
  • Configuração trabalhosa: Compatibilizar ChromeDriver, lidar com atualizações, escrever código para cada site—dá trabalho manter.
  • Frágil: Se o site mudar o layout, seu script pode parar de funcionar do nada.
  • Limpeza manual dos dados: Quer traduzir descrições ou analisar sentimentos? Vai precisar de bibliotecas ou APIs extras.

Para quem não é técnico, ou só quer dados prontos rapidinho, Selenium pode ser um exagero.

selenium 1.jpeg

Conheça o Thunderbit: A Alternativa com IA ao Selenium Python

Agora, deixa eu te apresentar uma ferramenta que está mudando o jogo para quem precisa de dados: . O Thunderbit é uma extensão Chrome de raspagem web com IA que permite extrair dados de qualquer site—sem código, sem complicação, em poucos cliques.

O Que Faz o Thunderbit Ser Diferente

  • Detecção Inteligente de Campos: Clique em “Sugerir Campos com IA” e a IA do Thunderbit identifica automaticamente o que extrair—nomes, preços, imagens, etc.
  • Raspagem de Subpáginas: Precisa de detalhes das páginas de produto? O Thunderbit navega e coleta tudo sozinho.
  • Enriquecimento de Dados: Traduza descrições, resuma textos ou faça análise de sentimento—tudo durante a raspagem.
  • Exportação em Um Clique: Envie os dados direto para Excel, Google Sheets, Notion ou Airtable. Sem código, sem dor de cabeça.
  • Interface Sem Código: Feito para quem não programa. Se você usa navegador, consegue usar o Thunderbit.

Sou suspeito (participei da criação do Thunderbit!), mas realmente acredito que é a forma mais rápida para equipes de negócios conseguirem dados estruturados da web—especialmente para vendas, e-commerce e pesquisa.

Thunderbit vs. Selenium Python: Comparativo Direto

Olha só a comparação:

CritérioSelenium PythonThunderbit (IA, Sem Código)
Tempo de ConfiguraçãoModerado a complexo—instalar Python, Selenium, ChromeDriver, escrever códigoMuito rápido—instale a extensão do Chrome, pronto em minutos
Conhecimento NecessárioAlto—exige programação e noções de HTMLBaixo—apontar e clicar, IA faz o trabalho pesado
Conteúdo DinâmicoExcelente—lida com JS, cliques, rolagemExcelente—funciona no navegador, lida com AJAX, rolagem infinita, subpáginas
VelocidadeLento—sobrecarga do navegadorRápido para tarefas pequenas/médias—IA detecta automaticamente, acesso direto ao DOM
EscalabilidadeDifícil de escalar—consome muitos recursosÓtimo para centenas/milhares de itens; não indicado para raspagem em massa
Processamento de DadosManual—precisa programar limpeza, tradução, sentimentoAutomático—IA traduz, resume, categoriza e enriquece em tempo real
Opções de ExportaçãoCódigo personalizado para CSV, Sheets, etc.Exportação em um clique para Excel, Google Sheets, Notion, Airtable
ManutençãoAlta—frágil a mudanças no siteBaixa—IA se adapta a muitas mudanças de layout, pouca manutenção
DiferenciaisAutomação total do navegador, fluxos personalizadosInsights com IA, templates prontos, enriquecimento de dados, extratores gratuitos

Para a maioria dos profissionais de negócios, Thunderbit é um alívio—nada de brigar com código ou drivers de navegador.

Exemplo Prático: Raspando o com Thunderbit

Veja como o Thunderbit resolve a mesma tarefa no :

  1. Instale a
  2. Acesse
  3. Clique no ícone do Thunderbit e selecione “Sugerir Campos com IA”
    • A IA do Thunderbit detecta automaticamente colunas como “Nome do Produto”, “Preço”, “URL do Produto”, etc.
  4. (Opcional) Adicione uma coluna para “Descrição (Japonês)” ou “Sentimento”
    • A IA traduz ou analisa enquanto raspa.
  5. Clique em “Raspar”
    • O Thunderbit coleta todos os dados em uma tabela.
  6. Exporte para Google Sheets, Notion ou Excel em um clique

Sem código, sem esperar navegador abrir, sem manipular CSV. Dados estruturados, prontos para uso.

Quando Usar Selenium Python ou Thunderbit para Raspagem de Dados

Qual ferramenta escolher? Minha dica:

  • Use Selenium Python se:
    • Você é desenvolvedor ou precisa de controle total da automação
    • A tarefa de raspagem é altamente personalizada ou parte de um projeto maior
    • Precisa automatizar fluxos complexos (login, downloads, formulários em etapas)
    • Vai raspar em grande escala (com infraestrutura adequada)
  • Use Thunderbit se:
    • Você é analista, profissional de negócios ou marketing e precisa de dados rápido
    • Quer evitar programação e configurações complicadas
    • Precisa de tradução, análise de sentimento ou enriquecimento de dados durante a raspagem
    • Seu projeto é de pequeno a médio porte (centenas ou poucos milhares de registros)
    • Quer exportar direto para Excel, Google Sheets, Notion ou Airtable

Já vi equipes gastarem dias criando scripts Selenium para tarefas que o Thunderbit resolve em 10 minutos. A menos que você precise de personalização avançada ou volume massivo, Thunderbit costuma ser a opção mais ágil e tranquila.

selenium 2.jpeg

Bônus: Dicas para Raspagem Web Ética e Eficiente

Antes de sair coletando dados, algumas recomendações:

  • Respeite o robots.txt e os Termos de Uso: Sempre confira o que é permitido. Se o site proíbe raspagem, não insista.
  • Controle a frequência dos acessos: Não sobrecarregue os servidores—adicione intervalos ou use limites automáticos.
  • Altere user agents/IPs se necessário: Ajuda a evitar bloqueios simples, mas não abuse se for contra as regras do site.
  • Evite dados pessoais ou sensíveis: Foque em informações públicas e respeite leis de privacidade como a LGPD e GDPR.
  • Prefira APIs quando disponíveis: Se o site oferece API, use—é mais seguro e estável.
  • Não raspe áreas protegidas por login ou paywall sem permissão: Isso pode ser ilegal e antiético.
  • Registre sua atividade e trate erros com cuidado: Se for bloqueado, pare e ajuste sua abordagem.

Quer saber mais sobre ética e legalidade na raspagem? Veja .

Conclusão: Escolha a Ferramenta Certa para Suas Necessidades de Raspagem

A raspagem de dados evoluiu muito—de scripts manuais para ferramentas com IA e sem código. Como vimos, Selenium Python é uma ótima opção para desenvolvedores lidando com sites dinâmicos e complexos, mas exige curva de aprendizado e manutenção. Para a maioria dos profissionais de negócios, Thunderbit oferece um caminho mais rápido e simples para obter dados estruturados—com tradução, análise de sentimento e exportação em um clique.

Minha sugestão? Teste os dois métodos. Se você é desenvolvedor, crie um script Selenium para um site como o e veja o que é preciso. Se quer resultados rápidos (ou evitar dor de cabeça), experimente o . Tem versão gratuita, então você pode testar no seu site favorito hoje mesmo.

E lembre-se: raspe com responsabilidade, use os dados com ética e que seu IP nunca seja bloqueado.

Quer se aprofundar? Confira estes conteúdos:

Experimente o Raspador Web IA Thunderbit Gratuitamente
Shuai Guan
Shuai Guan
Co-founder/CEO @ Thunderbit. Passionate about cross section of AI and Automation. He's a big advocate of automation and loves making it more accessible to everyone. Beyond tech, he channels his creativity through a passion for photography, capturing stories one picture at a time.
Topics
Selenium PythonPython ScraperTutorial Selenium
Experimente o Thunderbit
Use IA para raspar páginas da web sem esforço.
Plano gratuito disponível
Suporte para português
Índice
Extraia Dados com IA
Transfira dados facilmente para Google Sheets, Airtable ou Notion
Chrome Store Rating
PRODUCT HUNT#1 Product of the Week