Plus précisément, j'aimerais pouvoir télécharger certaines pages de mon profil utilisateur sur les différents sites Stack Exchange. Je voudrais cependant le faire automatiquement (à l'aide d'un cron
travail), à partir de la ligne de commande et dans un format analysable. Je préfère de loin utiliser Linux pour cela, mais je pourrais avoir accès à une machine Mac ou Windows si nécessaire.
Idéalement, je voudrais utiliser un outil comme Wget ou cURL pour récupérer les pages. Je ne sais pas comment passer outre la connexion. J'ai vu des suggestions qui mentionnent que vous pouvez vous connecter via Firefox, exporter le cookie pertinent et l'importer dans Wget via son --load-cookies
option. Par exemple ici et ici . Bien que cela fonctionne si je viens de me connecter, ce n'est pas le cas après un certain temps. Je suppose que le jeton d'identification doit être actualisé.
Donc, juste après vous être connecté à SU et avoir exporté mes cookies, je peux faire:
wget --load-cookies cookies.txt \
https://superuser.com/users/151431/terdon?tab=responses
Cependant, après quelques minutes, j'obtiens une erreur 404:
wget -O ~/stack/$(date +%s) --load-cookies ~/cookies.txt \
https://superuser.com/users/151431/terdon?tab=responses
--2013-08-06 04:04:14-- https://superuser.com/users/151431/terdon?tab=responses
Resolving superuser.com (superuser.com)... 198.252.206.16
Connecting to superuser.com (superuser.com)|198.252.206.16|:80... connected.
HTTP request sent, awaiting response... 404 Not Found
2013-08-06 04:04:15 ERROR 404: Not Found.
Alors, comment puis-je me connecter automatiquement à un site Web compatible OpenID à partir de la ligne de commande?
PS. Je pense que cela convient mieux ici que dans les applications Web, car ma question concerne vraiment l'aspect de la ligne de commande et non les détails réels de la page Web en question. Je suppose que toute solution sera applicable à tous les sites OpenID .
Réponses:
Vous ne pouvez pas, car les cookies se rafraîchissent de temps en temps. C'est à des fins de sécurité, la seule façon de le faire est la façon dont vous l'avez déjà fait. du moins, d'après ma compréhension.
la source
(Re-) Lisez la page de manuel pour
wget
et regardez les descriptions des drapeaux--user
et--password
.Notez qu'il n'est pas recommandé de passer un mot de passe comme argument de ligne de commande, car toute personne qui l'exécute
ps
peut le voir. La meilleure pratique consiste à ne sauvegarder les mots de passe bruts nulle part, mais la prochaine meilleure consiste à les placer dans un fichier que seul le propriétaire peut lire.la source