Formulário de contato

Nome

E-mail *

Mensagem *

Imagem

Automatizando Login com BeautifulSoup e Requests

Automatizando Login com BeautifulSoup e Requests

Publicado por em

@CanalQb Python - BeautifulSoup e Requests para Login e Redirecionamento
@CanalQb

Automatizando Login e Navegação com BeautifulSoup e Requests

Web scraping é uma técnica poderosa para automatizar a coleta de informações de páginas da web. Neste artigo, você verá como usar as bibliotecas requests e BeautifulSoup do Python para automatizar o processo de login em um site e navegar para uma página subsequente ao login.

Requisitos

  • Python 3.x
  • Bibliotecas: requests e beautifulsoup4 (instaláveis via pip install requests beautifulsoup4)

Exemplo de código Python

O exemplo a seguir simula o login e aguarda o redirecionamento para acessar uma nova página:

import requests
from bs4 import BeautifulSoup

# URL da página de login
login_url = 'https://example.com/login'
username = 'seu_usuario'
password = 'sua_senha'

# Inicia uma sessão para manter cookies e estado
with requests.Session() as session:
    # Acessa a página de login para obter CSRF token ou cookies
    login_page = session.get(login_url)
    soup = BeautifulSoup(login_page.text, 'html.parser')
    csrf_token = soup.find('input', {'name': '_csrf'}).get('value')

    # Prepara os dados de login
    login_data = {
        '_csrf': csrf_token,
        'username': username,
        'password': password,
        'submit': 'Login'
    }

    # Envia o POST com os dados de login
    session.post(login_url, data=login_data)

    # Espera ser redirecionado para uma página diferente da de login
    while session.get(login_url).url == login_url:
        pass

    # Obtém o conteúdo da nova página
    next_page = session.get(session.get(login_url).url)
    soup = BeautifulSoup(next_page.text, 'html.parser')

    # Busca o link desejado na nova página
    link = soup.find('a', {'href': '/link_para_clicar'})

    # Acessa o link encontrado
    if link:
        session.get('https://example.com' + link['href'])

Explicação do funcionamento

  • requests.Session(): mantém os cookies entre as requisições.
  • CSRF token: necessário em sites que utilizam proteção contra requisições forjadas. Nem todos os sites o exigem, mas é comum.
  • Loop de espera: é utilizado para verificar se o redirecionamento ocorreu. Em aplicações reais, pode-se aplicar time.sleep() com limite de tentativas para evitar loops infinitos.
  • BeautifulSoup: usada para analisar o HTML e encontrar o link de interesse.

Considerações sobre estrutura HTML e login

É importante entender que cada site possui uma estrutura própria de HTML. Assim, os nomes de campos como _csrf, username e password podem variar. Use ferramentas como o inspetor do navegador para analisar os elementos e ajustar o script conforme necessário.

Exemplo prático de variação de formulário

Em vez de _csrf, um site pode usar authenticity_token. Nomes de botões também podem ser submit, signin, etc. Certifique-se de mapear todos os campos do formulário corretamente.

Quando usar Selenium em vez de Requests

O requests funciona bem com páginas estáticas. Porém, se o site for altamente dinâmico (com carregamento de elementos via JavaScript), considere usar Selenium, que simula um navegador completo e interage com scripts em tempo real.

Importância da ética e termos de uso

Sempre leia os Termos de Serviço do site antes de utilizar automações. Muitos sites proíbem web scraping sem autorização explícita.

Conclusão

Este guia demonstrou como usar Python + requests + BeautifulSoup para efetuar login e navegar automaticamente após o redirecionamento. Essa abordagem é útil em diversos cenários de automação, desde coleta de dados até testes de sistemas internos.

Se precisar de funcionalidades mais complexas como clique em botões JavaScript ou login com autenticação em dois fatores, considere o uso de Selenium ou outras ferramentas baseadas em navegador.

Marcadores: Blogger Cripto IA Jogos Python Script Sistemas Tutorial

© abril 15, 2023 CanalQb — Python, Scripts, Automação, Airdrops e Criptomoedas | Web3 e Tech na Prática

Comentários