J'utilise lxml.html pour certaines analyses html en python. Je voudrais obtenir une estimation approximative de l'emplacement des éléments dans la page après qu'elle soit rendue par un navigateur. Il ne doit pas être exact, mais généralement correct. Pour simplifier, je vais ignorer les effets de Javascript sur l'emplacement de l'élément. En tant que résultat final, j'aimerais pouvoir parcourir les éléments (par exemple, via lxml) et trouver leurs coordonnées x/y. Des idées sur la façon de faire cela? Je n'ai pas besoin de rester avec lxml et suis heureux d'essayer d'autres bibliothèques.Position de l'élément Html en Python
2
A
Répondre
5
PyQt avec WebKit:
import sys
from PyQt4.QtCore import *
from PyQt4.QtGui import *
from PyQt4.QtWebKit import *
class MyWebView(QWebView):
def __init__(self):
QWebView.__init__(self)
QObject.connect(self,SIGNAL('loadFinished(bool)'),self.showelements)
def showelements(self):
html=self.page().currentFrame().documentElement()
for link in html.findAll('a'):
print(link.toInnerXml(),str(link.geometry())[18:])
if __name__=='__main__':
app = QApplication(sys.argv)
web = MyWebView()
web.load(QUrl("http://www.google.com"))
web.show()
sys.exit(app.exec_())
+0
C'est fantastique. Existe-t-il un moyen d'obtenir un peu plus de convivialité de la ligne de commande, en particulier en abandonnant tout seul (ou en opérant sur une séquence d'URL?) J'ai supprimé 'web.show()' et placé un 'sys.exit (0) 'à la fin des éléments de spectacle. – muckabout
0
Comme l'a déclaré Sven, vous avez besoin d'un moteur de rendu HTML. Une question sur le rendu HTML a déjà été posée, vous pouvez vous y référer.
Questions connexes
- 1. Nettoyer HTML en Python
- 2. Analyse HTML en Python
- 3. Échapper HTML en Python
- 4. position texte en haut à côté de l'image en html
- 5. html div position absolue héritée?
- 6. comment puis-je corriger la position de divs en html?
- 7. html - divs position à relative
- 8. Nuage de Tags HTML en Python
- 9. Convertisseur html en .doc en Python?
- 10. Page HTML en PDF en Python?
- 11. Suppression de Python HTML
- 12. Décodage chaînes codées html en python
- 13. Split HTML après N mots en python
- 14. balises HTML dans JSON (en Python)
- 15. Html à l'image en javascript ou python
- 16. Blanc liste certaines balises HTML en python?
- 17. HTML Position DIV Tag au TOP absolu
- 18. Analyse HTML: erreur lxml en Python
- 19. Python HTML Minimizer
- 20. Suppression des éléments de tableau en Python tout en gardant la trace de leur position
- 21. Intégration python html
- 22. Chaîne Python avec HTML/
- 23. Position initiale du curseur de champ de texte HTML
- 24. html position de la page statique après l'actualisation
- 25. jQuery: Animer en position verticale
- 26. Position relative d'une colonne de table HTML/JQuery
- 27. HTML haut et gauche pixal croissance proportionnelle de position
- 28. python check html valide
- 29. Générateur html python
- 30. Tableau Python et HTML
Vous aurez besoin d'un moteur de rendu HTML pour obtenir ces informations. Un analyseur ne va pas aider. –
Vous devrez également considérer l'effet de CSS. Très peu de contenu est rendu sans elle, ces jours-ci. –