Comment utiliser Phantomjs " témoin de l'API?
Je suis en train d'utiliser rasterize.js à partir de la phantomjs' exemple de dossier pour capturer une page web en PDF. Le problème que j'ai, c'est que la page web oblige l'utilisateur à ouvrir une session. Alors j'ai vu qu'il y a un cookie option pour Phantomjs. Le site web est Django alimenté seulement en cas de questions.
Donc je suis connecté sur le site virilement, ouvert le firebug, et tapé document.cookie
dans firebug. J'ai eu les paramètres des cookies et de les mettre dans mon cookies.txt.
[http://localhost:7000]
csrftoken: f3da886168fae33b840e7f6c93240dff
sessionid: 27e90c3214b0ec94dadc739665724708
django_language: en
Ensuite, j'ai utilisé le rasterize.js pour créer le fichier pdf ci-dessous:
phantomjs --cookies-file=cookies.txt examples/rasterize.js http://localhost:7000/reports /tmp/report.pdf
Mais le résultat est toujours à la page de connexion.
OriginalL'auteur tmaster | 2013-01-08
Vous devez vous connecter pour publier un commentaire.
Avez-vous essayé d'automatiser le processus d'ouverture de session dans PhantomJS, assurez-vous d'inclure des cookies param? De cette façon, phantomjs peut authentifier un utilisateur comme un navigateur, en utilisant des cookies.
Une autre option serait d'inspecter les demandes à l'aide d'un proxy comme fiddler, de comparer la demande faite à partir de firefox qui fonctionne et la demande faite à partir de phantomjs qui n'est pas authentifié. Les informations contenues dans l'en-tête devrait vous dire ce qui vous manque.
Vous pouvez ajouter des cookies à l'aide de la fonction de phantomjs offre:
http://phantomjs.org/api/webpage/method/add-cookie.html
{'csrftoken':'', 'sessionid':''}
. Des idées? MerciJe pense que vous avez tort de syntaxe pour addCookie - voir github.com/ariya/phantomjs/wiki/...
J'ai mis à jour la réponse à inclure la addcookie méthode.. bon appel
J'ai vu que la fonction déjà, mais il ne fonctionne pas quand je fais
phantom.addCookie({'domain':'localhost', 'csrftoken':'f3da886168fae33b840e7f6c93240dff'});
AddCookie solution fonctionne, mon mauvais, il n'a pas de travail, je suis passé dans l'url erronée. Merci.
OriginalL'auteur Justin Bicknell