2009-04-22 8 views
6

J'utilise BeautifulSoup et urllib2 pour télécharger des pages HTML et les analyser. Le problème est avec les pages HTML mal formées. Bien que BeautifulSoup soit bon pour manipuler le HTML mal formé, ce n'est pas aussi bon que Firefox. Considérant que Firefox ou Webkit sont plus à jour et résilient à gérer le HTML, je pense qu'il est idéal de les utiliser pour construire et normaliser l'arbre DOM d'une page et ensuite le manipuler via Python.Utiliser Gecko/Firefox ou Webkit pour obtenir l'analyse HTML en python

Cependant, je ne peux pas trouver de liaison python pour le même. Quelqu'un peut-il suggérer un moyen?

J'ai rencontré quelques solutions pour exécuter un processus sans tête de Firefox et le manipuler via python, mais existe-t-il une solution plus pythonique disponible.

+0

pourrait-il que vous utilisez belle soupe 3.1 qui « fait bien pire sur HTML dans le monde réel que la version 3.0.7a ne »? [1] a dû analyser des choses récemment moi-même et a constaté que 3.0.7 gère vraiment les choses beaucoup mieux. utilisez easy_install pour passer à la version 3.0.7a: sudo easy_install beautifulsoup == 3.0.7a [1] http://www.crummy.com/software/BeautifulSoup/3.1-problems.html –

Répondre

1

Peut-être pywebkitgtk ferait ce que vous avez besoin.

+1

non. pywebkitgtk est "simplement un afficheur de page". vous voulez http://www.gnu.org/software/pythonwebkit qui est une version fortement modifiée qui intègre webkit (!) et permet l'accès au DOM. toutes les 3000 fonctions et toutes les 20.000 propriétés. – user362834

1

voir http://wiki.python.org/moin/WebBrowserProgramming

il y a beaucoup d'options - je suis maintenant la page ci-dessus pour que je ne garde pas me répéter. Vous devriez regarder pyjamas-desktop: voir l'exemple examples/uitest parce que nous utilisons exactement cette astuce pour obtenir des copies de la page HTML "out", de sorte que le compilateur python-javascript peut être testé en comparant le résultats de la page après chaque test unitaire. Chaque runtime pris en charge et utilisé par pyjamas-desktop est capable de permettre l'accès à la propriété "innerHTML" de l'élément body du document (et beaucoup plus). Bottom line: il est trivial de faire ce que vous voulez faire, mais vous devez savoir où chercher pour savoir comment le faire.

l.

Questions connexes