|
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:
requestsebeautifulsoup4(instaláveis viapip 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.

Comentários
Comente só assim vamos crescer juntos!