6
votes

Web grattant du contenu dynamique avec python

J'aimerais utiliser Python pour gratter le contenu de la "Cherche de ces auteurs:" Boîte sur les pages Web comme celle-ci: http://academic.research.microsoft.com/search?query=lander

Malheureusement, le contenu de la boîte est chargé de manière dynamique par JavaScript. Habituellement, dans cette situation, je peux lire le JavaScript pour déterminer ce qui se passe, ou je peux utiliser une extension de navigateur comme Firebug pour comprendre où vient le contenu dynamique. Pas de bonne chance cette fois ... Le JavaScript est assez compliqué et Firebug ne donne pas beaucoup d'indices sur la façon de se mettre au contenu.

Y a-t-il des astuces qui faciliteront cette tâche?


0 commentaires

3 Réponses :



10
votes

Au lieu d'essayer d'inverser l'ingénieur, vous pouvez utiliser ghost.py pour interagir directement avec JavaScript sur la page.

Si vous exécutez la requête suivante dans une console chrome, vous verrez qu'il retourne tout ce que vous voulez. p> xxx pré>

retourne p> xxx pré>

Vous pouvez exécuter JavaScript via Python dans une vie réelle en utilisant ghost.py . p>

C'est vraiment cool: p>

from ghost import Ghost
ghost = Ghost()
page, resources = ghost.open('http://academic.research.microsoft.com/Search?query=lander')
result, resources = ghost.evaluate(
    "document.getElementsByClassName('inline-text-org');")


1 commentaires

Notez que ghost.py est abandonné. La dernière mise à jour était il y a 2 ans à compter de cette écriture.



1
votes

Pour racler du contenu dynamique, vous n'avez pas besoin d'un simple grattoir, mais d'un Navigateur sans tête .

DHAMANIASAD / INDIDELESSADROISERS: une liste de (presque) tous les navigateurs Web sans tête en existence est le maximum liste de ceux que j'ai vu; Il répertorie les langues chacune des liaisons pour.

(Notez que plus de quelques-uns des projets énumérés sont abandonnés!)


0 commentaires