Navegando em formulários com login e senha
Publicado por Mauricio (última atualização em 14/09/2012)
[ Hits: 17.766 ]
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
HCrawler 3.0 - crawler escrito em Python 3
Gentoo: detectando impressoras de rede e como fixar uma impressora por IP
Como o GNOME conseguiu o feito de ser preterido por outras interfaces gráficas
Gentoo binário em 2026: UEFI, LUKS, Btrfs e Systemd
Trabalhando Nativamente com Logs no Linux
Jogando Daikatana (Steam) com Patch 1.3 via Luxtorpeda no Linux
Por que sua empresa precisa de uma PKI (e como automatizar EMISSÕES de certificados via Web API)
Instalando NoMachine no Gentoo com Systemd (acesso Remoto em LAN)
Gentoo: Trocando wpa_supplicant pelo iwd no NetworkManager (Systemd)
O que houve com slackware ??? (12)
Alterar conteúdo de dica [RESOLVIDO] (3)
Vou destruir sua infância:) (5)









