comment
IRC Chat
play_arrow
Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

Navegador en python

  • 1 Respuestas
  • 1254 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Federal

  • *
  • Underc0der
  • Mensajes: 6
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • Email
« en: Noviembre 05, 2012, 02:44:11 pm »
Este es un navegador en python, lo guardan con la extencion .py y le dan permisos de ejecucion
Código: Python
  1. #!/usr/bin/python
  2. import sys, re
  3. import gtk, gobject
  4. import webkit
  5. DEFAULT_URL = 'http://www.google.com' # Change this as you Wish
  6. class SimpleBrowser: # needs GTK, Python, Webkit-GTK
  7.     def __init__(self):
  8.         self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
  9.         self.window.set_position(gtk.WIN_POS_CENTER_ALWAYS)
  10.         self.window.connect('delete_event', self.close_application)
  11.         self.window.set_default_size(750, 500)
  12.         vbox = gtk.VBox(spacing=5)
  13.         vbox.set_border_width(5)
  14.         self.txt_url = gtk.Entry()
  15.         self.txt_url.connect('activate', self._txt_url_activate)
  16.  
  17.         # Genero una barra de herramientas
  18.         toolbar = gtk.HBox(spacing=5)
  19.         vbox.pack_start(toolbar,False,False)
  20.  
  21.         # Agrego el boton "Atras"
  22.         self.btnback = gtk.Button()
  23.         self.btnback.add(gtk.Arrow(gtk.ARROW_LEFT,gtk.SHADOW_OUT))
  24.         self.btnback.connect('clicked',self._go_back)
  25.         toolbar.pack_start(self.btnback,False,False)
  26.  
  27.         # Agrego el boton "Adelante"
  28.         self.btnforward = gtk.Button()
  29.         self.btnforward.add(gtk.Arrow(gtk.ARROW_RIGHT,gtk.SHADOW_OUT))
  30.         self.btnforward.connect('clicked',self._go_forward)
  31.         toolbar.pack_start(self.btnforward,False,False)
  32.  
  33.         # Agrego el boton "Actualizar"
  34.         btnrefresh = gtk.Button('Actualizar')
  35.         btnrefresh.connect('clicked',self._refresh)
  36.         toolbar.pack_start(btnrefresh,False,False)
  37.  
  38.         # Agrego la barra de direcciones
  39.         self.text = gtk.Entry()
  40.         self.text.connect('activate',self._open_bar_url)
  41.         toolbar.pack_start(self.text,True,True)
  42.  
  43.         # Agrego el boton de "Ir"
  44.         button = gtk.Button('Ir')
  45.         button.connect('clicked',self._open_bar_url)
  46.         toolbar.pack_start(button,False,False)
  47.  
  48.         # Agrego el renderer del motor
  49.         self.scrolled_window = gtk.ScrolledWindow()
  50.         self.webview = webkit.WebView()
  51.         self.scrolled_window.add(self.webview)
  52.         vbox.pack_start(self.scrolled_window, fill=True, expand=True)
  53.         self.window.add(vbox)
  54.  
  55.         # Agrego un alinea de estado, con una etiqueta y una barra de progreso
  56.         self.pbar = gtk.ProgressBar()
  57.         self.status = gtk.Label()
  58.         hbox2 = gtk.HBox(False,0)
  59.         hbox2.pack_start(self.status,False,False)
  60.         hbox2.pack_end(self.pbar,False,False)
  61.         vbox.pack_start(hbox2,False,True)
  62.  
  63.         # Defino las acciones a realizar segun los eventos del motor html
  64.         self.webview.connect('load-started',self._load_start)
  65.         self.webview.connect('load-progress-changed',self._load_progress_changed)
  66.         self.webview.connect('load-finished',self._load_finished)
  67.         self.webview.connect('title-changed',self._title_changed)
  68.         self.webview.connect('hovering-over-link',self._hover_link)
  69.  
  70.     def _open_bar_url(self, nada):
  71.         self.open(self.text.get_text())
  72.     def _txt_url_activate(self, entry):
  73.         self._load(entry.get_text())
  74.     def _load(self, url):
  75.         self.webview.open(url)
  76.     def open(self, url):
  77.         # Si la url no tiene el http:// adelante, se lo agrego
  78.         if url[0:7] != "http://":
  79.             url = "http://"+url
  80.         self.txt_url.set_text(url)
  81.         self._load(url)
  82.     def show(self):
  83.         self.window.show_all()
  84.     def close_application(self, widget, event, data=None):
  85.         gtk.main_quit()
  86.     def _load_start(self, view, nadas):
  87.         self.status.set_text('Cargando...')
  88.         self.pbar.set_fraction(0)
  89.     def _load_progress_changed(self, view, prog):
  90.         self.pbar.set_fraction(prog/100.0)
  91.     def _load_finished(self, view, nada):
  92.         self.pbar.set_fraction(0)
  93.         self.status.set_text('Listo')
  94.     def _go_back(self,nada):
  95.         self.webview.go_back()
  96.     def _go_forward(self,nada):
  97.         self.webview.go_forward()
  98.     def _refresh(self,nada):
  99.         self.webview.reload()
  100.     def _title_changed(self,view,frame,title):
  101.         # Actualizo el titulo del navegador, la url en la barra de url y activo/desactivo los botones Adelante y Atras
  102.         self.window.set_title('%s' % title)
  103.         self.text.set_text(frame.get_uri())
  104.         self.btnback.props.sensitive = self.webview.can_go_back()
  105.         self.btnforward.props.sensitive = self.webview.can_go_forward()
  106.     def _hover_link(self,view,frame,url):
  107.         # Si se hace hover sobre un link, pongo en la barra de estado la url hacia la que linkea
  108.         if view and url:
  109.             self.status.set_text(url)
  110.         else:
  111.             self.status.set_text("")
  112.  
  113. if __name__ == '__main__':
  114.     if len(sys.argv) > 1:
  115.         url = sys.argv[1]
  116.     else:
  117.         url = DEFAULT_URL
  118. gtk.gdk.threads_init()
  119. browser = SimpleBrowser()
  120. browser.open(url)
  121. browser.show()
  122. gtk.main()
regards,
« Última modificación: Mayo 03, 2014, 10:22:18 am por Flemon »
Cuando la vida te presenta razones para llorar, demuéstrale que tienes mil y una razones para vivir y sonreir.

Desconectado Sanko

  • *
  • Underc0der
  • Mensajes: 541
  • Actividad:
    0%
  • Reputación 0
  • ¿Puedes?
    • Ver Perfil
    • Underc0de
« Respuesta #1 en: Noviembre 05, 2012, 05:10:53 pm »
Buen code  ;)
Sigueme en Twitter : @Sankosk
Estos nuevos staff no tienen puta idea XD

 

¿Te gustó el post? COMPARTILO!



[Código] Yardas a metros - Metros a yardas [Python]

Iniciado por LucaSthefano

Respuestas: 0
Vistas: 1419
Último mensaje Mayo 29, 2011, 01:27:34 am
por LucaSthefano
Python keylogger - by "bLiNdFiR3"

Iniciado por d33k40

Respuestas: 0
Vistas: 2059
Último mensaje Abril 07, 2010, 03:30:22 am
por d33k40
[Código] Entero / No Entero [Ejercicio - Python]

Iniciado por LucaSthefano

Respuestas: 0
Vistas: 1387
Último mensaje Mayo 29, 2011, 01:24:09 am
por LucaSthefano
Python phpmyadmin "BruteForce"

Iniciado por linkgl

Respuestas: 2
Vistas: 2548
Último mensaje Agosto 19, 2011, 12:14:37 pm
por linkgl
Python Trojan - By "bLiNdFiR3"

Iniciado por d33k40

Respuestas: 1
Vistas: 2111
Último mensaje Abril 03, 2010, 11:01:59 pm
por Dharok