Navegando em formulários com login e senha
Publicado por Mauricio (última atualização em 14/09/2012)
[ Hits: 17.369 ]
Homepage: http://www.mbmaciel.com
Um exemplo de navegação em modo texto usando python com mechanize num formulário com login e senha. No caso o formulário de login da administração de um site com Joomla. Basta substituir com o nome do site, colocar o login e senha nas variáveis indicadas.
Instalando o mechanize:
$ sudo easy_install mechanize
#!/usr/bin/env python # -*- coding: utf-8 -*- # >>> navegando_form.py - 04/09/2012 # Por Mauricio Maciel <mbmaciel@linuxdepot.com.br> # Navega por formulário de login do Joomla usando o Mechanize. # Configurado para o Joomla mas serve para a maioria dos forms # Instalação do mechanize - sudo easy_install mechanize import mechanize import cookielib #cria um navegador, um browser de codigo... br = mechanize.Browser() url = 'http://www.seusitejoomla.com.br/administrator' # preencha com seu site joomla email = 'seulogin' # o login utilizado senha = 'senha' # a senha utilizada # Prepara para tratar cookies... cj = cookielib.LWPCookieJar() br.set_cookiejar(cj) # Ajusta algumas opções do navegador... br.set_handle_equiv(True) br.set_handle_gzip(False) br.set_handle_redirect(True) br.set_handle_referer(True) br.set_handle_robots(False) br.set_handle_refresh(mechanize._http.HTTPRefreshProcessor(), max_time=1) # Configura o user-agent. # Do ponto de vista do servidor, o navegador agora é o Firefox. br.addheaders = [('User-agent', 'Mozilla/5.0 (X11;\ U; Linux i686; en-US; rv:1.9.0.1) Gecko/2008071615\ Fedora/3.0.1-1.fc9 Firefox/3.0.1')] # Pronto! Agora é navegar, acessando a URL usando o método HTTP GET br.open(url) # Para abrir o primeiro formulário, você pode selecionar com: #0 br.select_form(nr=0) # Para mostrar os formularios e ver os campos a serem preenchidos, # use um for sobre o br.forms() for f in br.forms(): print f # Preencher o formulário com os dados de login... br.form['username'] = email br.form['passwd'] = senha # Enviar o formulário usando o método HTTP POST br.submit() # E finalmente, busque o HTML retornado: html = br.response().read() print html
Bot que baixa o KDE 3.4 e a QT para o Slackware 10.1
Script que obtém informações disponibilizadas a bots pelos sites
hcoin - Preço do Dólar, Bitcoin e Euro em Python
Descubra seu IP através do MeuIP
Atenção a quem posta conteúdo de dicas, scripts e tal (6)
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
O mínimo que você precisa saber sobre o terminal (parte 2)
O mínimo que você precisa saber sobre o terminal (parte 1)
Como iniciar uma máquina virtual do VirtualBox automaticamente no boot do LUbuntu 18 LTS
Flatpak: remover runtimes não usados e pacotes
Mudar o gerenciador de login (GDM para SDDM e vice-versa) - parte 2
Como deixar as abas do Firefox mais fininhas
Mudar o gerenciador de login (GDM para SDDM)
"Tentando" fazer com que programas rodem no Wayland e no X11
Falha ao carregar drivers [RESOLVIDO] (2)
Formatar NVM Express 1.3 de forma segura por completo (4)
Problema ao usar monitor externo via USB-C/Display... no Ubuntu 24 (1)
Porblema com MergeList [RESOLVIDO] (10)
Melhor hospedagem em nuvem para projetos Laravel com baixo custo? [RES... (7)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta