À l'aide d'un script Ruby pour vous connecter à un site web via https
Bon, alors voici la dealio: je travaille sur une application Ruby qui va prendre les données d'un site web, et de les agréger les données dans un fichier XML.
Le site, j'ai besoin de prendre des données à partir de n'importe quel Api je peux m'en servir, donc la seule chose que je peux penser à est de se connecter sur le site, de manière séquentielle de charger les pages qui ont les données dont j'ai besoin (dans ce cas, le syndrome prémenstruel; je veux archiver), puis d'analyser le code HTML renvoyé.
Le problème, cependant, c'est que je ne sais pas du tout les moyens d'en programmant simuler une session de connexion.
Quelqu'un aurait-il des conseils à donner, ou connaissez des méthodes éprouvées que je pourrais utiliser pour réussir à vous connecter à une page https, puis par programmation à charger les pages du site à l'aide d'un cookie temporaire session de la connexion? Il n'a pas à être un Rubis seule solution -- je veux juste savoir comment je peux faire ça. Et si cela peut aider, le site en question est celui qui utilise Microsoft .NET Passport service de son login/mécanisme de session.
Des commentaires sur la question est la bienvenue. Merci.
Vous devez vous connecter pour publier un commentaire.
Mécaniser
Mechanize est ruby bibliothèque qui imititates le comportement d'un navigateur web. Vous pouvez cliquer sur les liens, remplir des formulaires et de les soumettre. Il a même une histoire et remebers cookies. Il semble que votre problème pourrait être facilement résolu avec l'aide de mécaniser.
L'exemple suivant est tiré de http://mechanize.rubyforge.org:
Vous pouvez essayer d'utiliser wget pour récupérer la page. Vous pouvez analyser le processus de connexion avec cette application http://www.portswigger.net/proxy/.
Pour ce que ça vaut, vous pourriez vérifier Webrat. Il est destiné à être utilisé un outil pour automatiser les tests d'acceptation, mais je pense que vous pouvez l'utiliser pour simuler remplissant les champs de connexion, puis cliquez sur par le biais de liens par leurs noms, et de saisir le HTML nécessaire comme une chaîne de caractères. N'ai pas essayé de faire quelque chose comme ça, tho.