Navegando em formulários com login e senha
Publicado por Mauricio (última atualização em 14/09/2012)
[ Hits: 17.225 ]
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
Atenção a quem posta conteúdo de dicas, scripts e tal (2)
Criando um gateway de internet com o Debian
Configuração básica do Conky para mostrar informações sobre a sua máquina no Desktop
Aprenda a criar músicas com Inteligência Artificial usando Suno AI
Entendendo o que é URI, URL, URN e conhecendo as diferenças entre POST e GET
Ativando o Modo Noturno via Linha de Comando no GNOME/Wayland
Preparando pendrive com GNU/Linux [Corretamente!]
Instalando Google Chrome no Fedora 40
Habilitando a importação de senhas no Firefox
Como corrigir o erro do VirtualBox travar a máquina virtual em tela cheia
Como compilar os drivers da impressora Canon para 64 bit? (3)
Como faço pra um script ser executado apenas abrindo um terminal e dan... (9)