Formulário de contato

Nome

E-mail *

Mensagem *

Este blog é um complemento do nosso canal no YouTube. Clique em @CanalQb para seguir e acompanhar nossos vídeos!

Imagem

Python: Login com BeautifulSoup e Selenium para Navegação Automática

Python: Login com BeautifulSoup e Selenium para Navegação Automática

Publicado por em

@CanalQb 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:

  • requests para manipular requisições HTTP e manter sessão ativa;
  • BeautifulSoup para extrair dados da página, como tokens CSRF;
  • Selenium para automação do navegador e interação com elementos dinâmicos;
  • time.sleep para 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:

  1. Inicia uma sessão HTTP com requests.Session() para manter cookies e estado do login;
  2. Faz uma requisição GET na página de login para obter o token CSRF necessário;
  3. Envia os dados do formulário com o token CSRF, usuário e senha para autenticar via POST;
  4. Usa um loop para aguardar o redirecionamento para a página protegida;
  5. Inicializa o Selenium para abrir a página autenticada no navegador;
  6. 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:

Marcadores:

© CanalQB – Tutoriais de YouTube, Python, Airdrops e Criptomoedas

Comentários