10 Boas Práticas com Selenium para Evitar Bloqueios e Melhorar Sua Automação Web
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". 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") 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.

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".
- 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")
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 apenasdriver.close()
).
Acha que algo importante ficou de fora? Adicione nos comentários.