Sigo con mis prácticas en Python + QT4. Posterior a esto seguiré con el tutorial que estuve escribiendo para RootCodes... En esta oportunidad he traspasado este código en consola ~> [Python]Detectar formulario y campos de un sitio web a PyQT. Así aprovechando de utilizar QTreeWidget(); Para aprender a usarlo y a la vez que ustedes vean como se usa.
Un ScreenShot de la App :
Y el Código :
Código
# -*- coding: utf-8 -*- # Autor ~> JaAViEr|0x5d # Sitio Web ~> http://www.rootcodes.com # Twitter ~> @0x5d from PyQt4 import QtCore, QtGui import sys, urllib, re class aplica(QtGui.QWidget): def __init__(self, parent=None): QtGui.QWidget.__init__(self, parent) self.setWindowTitle("Detectar campos de un formulario | 0x5d") self.resize(510,570) self.arbol = QtGui.QTreeWidget(self) self.arbol.setGeometry(5,70,500,500) self.label_url = QtGui.QLabel("URL/Host :", self).setGeometry(5,10,64,27) self.input_url = QtGui.QLineEdit(self) self.input_url.setGeometry(73,10,430,27) self.boton = QtGui.QPushButton("Extraer campos del formulario",self) self.boton.setGeometry(73,40,430,27) self.connect(self.boton, QtCore.SIGNAL("clicked()"), self.extractor) self.arbol.headerItem().setText(0,"Campos") def extractor(self): var = urllib.urlopen(str(self.input_url.text())).read() datos_r = [] for campos in re.findall("<input (.*)>",var): if "name" in campos.lower(): for cam in campos.split(): if re.findall("name=(.*)",cam): datos_r.append(cam.replace('"',"")) #print "URL a enviar POST:",url_enviar.replace(">","") for x,y in enumerate(datos_r): exec("primer_%s = QtGui.QTreeWidgetItem(self.arbol)"%x) exec("self.arbol.topLevelItem(%s).setText(0, \"%s\")"%(x,y.replace("name=",""))) app = QtGui.QApplication(sys.argv) form = aplica() form.show() app.exec_()
Fuente: http://rootcodes.com/pyqt4detectar-campos-de-un-formulario-web/
Saludos, Javier.