|
Python - BeautifulSoup e Selenium - Esperando login para redirecionar à próxima página | |
| Canal Qb | ||
Automatizando login e navegação com Python
Este exemplo demonstra como fazer login em um site usando Python com as bibliotecas requests e BeautifulSoup para manipulação da sessão, e Selenium para controlar a navegação e clicar em links após o redirecionamento.
Importando bibliotecas e definindo parâmetros
As bibliotecas utilizadas são:
requestspara manipular requisições HTTP e manter sessão ativa;BeautifulSouppara extrair dados da página, como tokens CSRF;Seleniumpara automação do navegador e interação com elementos dinâmicos;time.sleeppara pausas controladas no fluxo do script.
import requests from bs4 import BeautifulSoup from time import sleep from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC # Define as informações de login login_url = 'https://example.com/login' username = 'seu_usuario' password = 'sua_senha' # Cria uma sessão e faz o login with requests.Session() as session: # Faz o GET na página de login e extrai o CSRF token login_page = session.get(login_url) soup = BeautifulSoup(login_page.text, 'html.parser') csrf_token = soup.find('input', {'name': '_csrf'}).get('value') # Define os dados do POST request para fazer login login_data = { '_csrf': csrf_token, 'username': username, 'password': password, 'submit': 'Login' } # Faz o POST request para fazer login session.post(login_url, data=login_data) # Espera pelo redirecionamento para a próxima página while session.get(login_url).url == login_url: sleep(1) # Inicializa o Selenium e espera pelo link a ser clicado driver = webdriver.Chrome() # Configure o caminho do webdriver se necessário driver.get(session.get(login_url).url) wait = WebDriverWait(driver, 10) element = wait.until(EC.element_to_be_clickable((By.LINK_TEXT, 'Link para clicar'))) element.click()
Funcionamento do script
O script funciona da seguinte forma:
- Inicia uma sessão HTTP com
requests.Session()para manter cookies e estado do login; - Faz uma requisição GET na página de login para obter o token CSRF necessário;
- Envia os dados do formulário com o token CSRF, usuário e senha para autenticar via POST;
- Usa um loop para aguardar o redirecionamento para a página protegida;
- Inicializa o Selenium para abrir a página autenticada no navegador;
- Espera até que o link desejado esteja clicável e então realiza o clique automaticamente.
Dicas e cuidados
- Webdriver: Instale o ChromeDriver correspondente à sua versão do Google Chrome e configure o caminho na inicialização do webdriver;
- Segurança: Nunca exponha suas credenciais diretamente no código em ambientes públicos;
- Adaptabilidade: O nome do campo CSRF, a URL e o nome do link para clicar podem variar conforme o site — ajuste conforme a estrutura HTML do site alvo;
- Automação ética: Sempre respeite as políticas do site para evitar bloqueios ou uso indevido dos recursos.
Considerações finais
Este método combina a robustez do requests para login e manutenção de sessão com a flexibilidade do Selenium para interação com páginas dinâmicas, permitindo automações eficazes para testes, scraping ou tarefas repetitivas. Para mais informações e atualizações, consulte a documentação oficial das bibliotecas:

Comentários
Comente só assim vamos crescer juntos!