Navegando em formulários com login e senha

Publicado por Mauricio (última atualização em 14/09/2012)

[ Hits: 17.739 ]

Homepage: http://www.mbmaciel.com

Download navegando_form.py




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

  



Esconder código-fonte

#!/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

Scripts recomendados

Script que obtém informações disponibilizadas a bots pelos sites

Downloader Gráfico - Python 3

Consulta CNPJ online

Transforma código de barras

Cotação do Bitcoin


  

Comentários
[1] Comentário enviado por Marcondys1996 em 12/04/2020 - 20:10h

Quero usar uma listra de endereços dns num site que resolve endereços para coletar ips e logo após salvar os ips em um arquivos .txt. Já busquei em outros outros sites mas não encontri nenhum artigo, seria possível me ajudar co isso?


Contribuir com comentário