example - Navegador de DOM Aware Navegador de Python GUI Widget
tkinter python 3 (3)
Si no te importa estar limitado a Windows, puedes usar el control del navegador IE. Desde wxPython, está en wx.lib.iewin.IEHtmlWindow (hay una demostración en la demostración de wxPython). Esto le da acceso completo al DOM y la capacidad de hundir eventos, por ejemplo
ie.document.body.innerHTML = u"<p>Hello, world</p>"
Estoy buscando un widget de navegador de python (a lo largo de las líneas de la clase QTextBrowser de pyQT4 o el módulo HTML de wxpython ) que tiene eventos para la interacción con el DOM. Por ejemplo, si destaco un nodo h1, la clase de widget debería tener un método que me notificara que algo estaba resaltado y qué propiedades dom tenía ese nodo ( <h1>
, contenido de la etiqueta, hermanos y etiquetas padre, etc.). Lo ideal sería que el módulo / clase de widgets daría acceso al objeto del árbol DOM en sí mismo para poder atravesarlo, modificarlo y volver a renderizar el nuevo árbol.
Existe algo como esto? Intenté buscar pero desafortunadamente no puedo encontrarlo. ¡Gracias por adelantado!
También me encantaría tal cosa. Sospecho que uno con enlaces de Python no existe, pero estaría muy feliz de estar equivocado sobre esto.
Una opción que examiné recientemente (pero que nunca intenté) es el navegador Webkit . Ahora esto tiene algunos enlaces para Python, y está construido contra diferentes kits de herramientas (yo uso GTK). Sin embargo, hay API disponible para todo el equipo de Javascript para C ++, pero no enlaces de Python y no veo ninguna razón por la cual estos no puedan vincularse a Python. Es una tarea bastante grande, lo sé, pero sería un proyecto universalmente útil, por lo que tal vez valga la pena la inversión.
Puede que no sea ideal para sus propósitos, pero es posible que desee echar un vistazo a los enlaces de Python a KHTML que forman parte de PyKDE. Un lugar para comenzar a buscar es la clase KHTMLPart:
http://api.kde.org/pykde-4.2-api/khtml/KHTMLPart.html
Dado que la API para esta clase se basa en el paradigma de señales y ranuras utilizado en Qt, deberá conectar varias señales a las ranuras de su propio código para averiguar cuándo se han cambiado partes de un documento. También hay una DOM API, por lo que también debería ser posible acceder a los nodos DOM para las partes seleccionadas del documento.
Más información se puede encontrar aquí: