1. Não Abuse no Volume de Requisições

Muitas vezes na ânsia de coletar os dados exageramos na quantidade de requisições, o que gera riscos de bloqueios mesmo em sites famosos. Por exemplo se acessar o arquivo robots.txt da wikipedia verá a seguinte mensagem: "algumas aranhas mal-comportadas por aí que são muito rápidas. Se você for irresponsável, seu acesso ao site poderá ser bloqueado".
Mensagem de bloqueio a requisições em grande volume na wikipedia

  • Respeite robots.txt e limites de requisições para evitar bloqueios.
  • Use delays entre ações para não sobrecarregar o servidor.

2. Crie um Perfil específico para isso no Chrome

Evite login repetido, configure um perfil de usuário para manter cookies, cache e sessões salvas. Como usar:

from selenium import webdriver
  options = webdriver.ChromeOptions()
  options.add_argument("--user-data-dir=C:/caminho/do/perfil")
  options.add_argument("profile-directory=Perfil")
  driver = webdriver.Chrome(options=options)

Vantagem: Mantém configurações pessoais (extensões, preferências) entre execuções.

3. Defina uma Pasta Padrão para Downloads

Evite bagunça e arquivos temporários, configure um diretório fixo para baixar arquivos, e evite deixar os seus arquivos pessoais misturados com os arquivos baixados pela automação.

prefs = {
      "download.default_directory": "C:/caminho/para/downloads",
      "download.prompt_for_download": False
  }
  options.add_experimental_option("prefs", prefs)

Vantagem: Organiza os downloads e facilita a automação de arquivos.

4. Use Esperas (Waits) Adequadas

  • Evite time.sleep() fixos, pois tornam o script lento e pouco confiável.
  • Prefira WebDriverWait + expected_conditions para esperar por elementos de forma dinâmica:
from selenium.webdriver.support.ui import WebDriverWait
  from selenium.webdriver.support import expected_conditions as EC
  from selenium.webdriver.common.by import By

  element = WebDriverWait(driver, 10).until(
      EC.presence_of_element_located((By.ID, "meu-elemento"))
  )

5. Selecione Elementos de Forma Robusta

  • Priorize seletores como ID, CSS Selectors ou XPath estáveis.
  • Evite XPath muito complexos ou dependentes de textos variáveis.

6. Gerencie Sessões e Drivers Corretamente

  • Sempre feche o navegador com driver.quit() (não apenas driver.close()).

Acha que algo importante ficou de fora? Adicione nos comentários.