2009-11-03 6 views
-1

Je construis un bot web pour me connecter à certains de mes comptes sur des sites web mais l'une des url envoie des cookies de javascript et curl est incapable de les stocker. Toute suggestion?curl ne stocke pas de cookies

+0

À court d'analyser le javascript vous-même, je ne vois pas que vous pouvez faire beaucoup. Rappelez-vous que curl fonctionne en PHP et n'interpelle pas le javascript sur la page retournée. Il semble que vous ayez rencontré un site, que ce soit à dessein ou que le hasard n'autorise pas les robots Web à y avoir accès. – Tom

Répondre

-1

Curl n'analyse pas Javascript, donc les cookies ne seront jamais définis.

+3

Votre simplicité me frappe. Je le sais déjà depuis que je suis là. J'ai demandé une solution si possible. Peut-être appelez exec et exécutez IE à partir de la commande pour stocker les cookies et les attraper. Si quelqu'un l'a fait avant, répondez. –

1

Vous pouvez analyser le fichier javascript en utilisant la langue que vous utilisez et rechercher l'instruction document.cookie. Vous pouvez ensuite utiliser ces données pour définir le cookie manuellement dans curl. (CURLOPT_COOKIE)

Ce ne serait pas exactement la meilleure idée si vous espérez que cela fonctionne avec un certain nombre de sites, mais puisque vous déclarez que vous connaissez le site, vous aurez besoin de charger sa possibilité. Je vais avoir une idée de la façon dont le Javascript va ressembler.

1

Si vous avez des mois de temps libre sur vos mains, vous pouvez compiler webkit et its javascript engine et modifier la fonctionnalité de réglage de cookies afin qu'il exporte les cookies pour stdout (puis les attraper avec exec de PHP). Bonne chance avec ça cependant. Considérant que vous posez cette question par rapport à cURL, je ne pense pas que ce soit tout à fait votre allée ...

Je voudrais en quelque sorte aller avec la réponse de Kewley si vous êtes désespéré. Vous devriez être en mesure de désosser le javascript et voir la logique derrière la façon dont l'application web définit ses cookies. Si elle authentifie et renvoie le résultat de connexion avec XHR, regardez ce qui est envoyé et reçu par le navigateur (avec Firebug). Ajoutez des points d'arrêt sur les lignes document.cookie et observez les cookies en cours de définition (et leur définition). Une fois que vous connaissez la logique précise de l'authentification, vous effectuez les demandes en coulisse nécessaires pour suspendre une session sur le site avec cURL.

Questions connexes