Navegando em formulários com login e senha

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

[ Hits: 17.197 ]

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

Envio e recebimento de arquivos em Python

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

hdns - Enumerador de diretórios

python instalador 2.0

Cotação do Dólar com requests_html


  

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




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts