2009-12-10 3 views
0

Je souhaite récupérer la source d'un site web, généré dynamiquement en cliquant sur un lien. Le lien lui-même est comme ci-dessous:Récupérer la source d'un site web dynamique en utilisant python (en contournant onclick)

<a onclick="function(); return false" href="#">Link</a> 

Cela me arrête d'interroger directement une URL qui me permettra d'obtenir le site Web généré dynamiquement (urllib/2).

Comment retrouver la source du site Web, qui a été générée avec la fonction ci-dessus (en HTML) via python? Y at-il une méthode pour contourner le return false" href="#"? Ou le onclick entièrement, et obtenez l'URL réelle?

S'il y a une autre façon de générer le site web à partir du lien abstrait ci-dessus, afin que l'on puisse l'obtenir depuis urllib en python, veuillez me le référer.


EDIT:

Je généralisé le code vu plus haut - mais on m'a dit que l'on doit désosser le javascript spécifique pour pouvoir l'utiliser.

Lien vers .js - http://a.quizlet.com/j/english/create_setku80j8.js

Lien vers le site avec lien:

<a onclick="importText(); return false" href="#">Bulk-import data</a> 

URL réelle du site: http://quizlet.com/create_set/

enjolivé JS de .js pertinentes ci-dessus: http://pastie.org/737042

+0

Je suis un développeur Quizlet. Peut-être pouvez-vous me dire comment je peux vous aider :) Nous avons une API disponible ... – philfreo

Répondre

1

Je ne vois pas immédiatement de code de génération de contenu ou de lien suivant dans ce script; tout est importText est de basculer si quelques divs sont montrés.

Si vous voulez étudier les appels que fait la webapp pour effectuer une action particulière, afin de les reproduire depuis un bot, il vaut probablement mieux regarder les requêtes HTTP (soumissions de formulaires et appels AJAX) que le navigateur fait en exécutant cette action. Vous pouvez utiliser le panneau 'Net' de Firebug pour étudier ceci pour Firefox, ou Fiddler pour IE.

+0

C'est le cas, laissez-moi regarder de plus près la source du site. – torger

2

Vous devrez probablement désosser le code JavaScript pour déterminer ce qui se passe.

Pouvez-vous fournir le site et le lien en question?

+0

http://quizlet.com/create_set/ - Vous devez créer un compte>.>. Comment irait-on à propos de l'ingénierie inverse Javascript? – torger

+0

C'est pour que je puisse importer mon jeu de cartes -> sans invoquer un navigateur web. Leur API ne permet que les appels et aucune entrée <. <. – torger

+0

Javascript avec la fonction significative importText() - http://a.quizlet.com/j/english/create_setku80j8.js. – torger

Questions connexes