Navegando em formulários com login e senha
Publicado por Mauricio (última atualização em 14/09/2012)
[ Hits: 17.710 ]
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
Conversor de vídeos do YouTube para MP3
Python script para inundação de email
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
Cirurgia no Linux Mint em HD Externo via USB
Anúncio do meu script de Pós-Instalação do Ubuntu
Instalar Webmin no Redhat e derivados
Alguém já testou o novo COSMIC Desktop? O que achou? (6)
Por que passar nas disciplinas da faculdade é ruim e ser reprovado é b... (3)
Alguém pode me indicar um designer freelancer? [RESOLVIDO] (2)









