Insbesondere möchte ich in der Lage sein, bestimmte Seiten von meinem Benutzerprofil auf den verschiedenen Stack Exchange-Sites herunterzuladen. Ich möchte dies jedoch automatisch (mithilfe eines cron
Jobs) über die Befehlszeile und in einem analysierbaren Format tun. Ich bevorzuge die Verwendung von Linux, könnte aber bei Bedarf auch auf einen Mac- oder Windows-Computer zugreifen.
Idealerweise würde ich gerne ein Tool wie Wget oder cURL verwenden , um die Seiten abzurufen. Ich weiß aber nicht, wie ich am Login vorbeikomme. Ich habe Vorschläge gesehen, die erwähnen, dass Sie sich über Firefox anmelden, das entsprechende Cookie exportieren und es über seine --load-cookies
Option in Wget importieren können . Zum Beispiel hier und hier . Dies funktioniert zwar, wenn ich mich gerade angemeldet habe, aber nach einer Weile nicht mehr. Ich denke, weil der ID-Token aktualisiert werden muss.
Nachdem ich mich bei SU angemeldet und meine Cookies exportiert habe, kann ich Folgendes tun:
wget --load-cookies cookies.txt \
https://superuser.com/users/151431/terdon?tab=responses
Nach ein paar Minuten bekomme ich einen 404-Fehler:
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.
Wie kann ich mich automatisch über die Befehlszeile bei einer OpenID-fähigen Website anmelden?
PS. Ich denke, dies ist hier besser geeignet als in Webanwendungen, da meine Frage wirklich den Kommandozeilenaspekt und nicht die tatsächlichen Details der fraglichen Webseite betrifft. Ich würde vermuten, dass jede Lösung für alle OpenID- Sites gelten wird.
Antworten:
Sie können nicht, weil Cookies von Zeit zu Zeit aktualisiert werden. Dies dient Sicherheitszwecken. Sie können dies nur so tun, wie Sie es bereits getan haben. zumindest nach meinem Verständnis.
quelle
Lesen Sie die Manpage nach
wget
und lesen Sie die Beschreibungen der Flags--user
und--password
.Beachten Sie, dass die Übergabe eines Kennworts als Befehlszeilenargument nicht empfohlen wird, da jeder, der
ps
es ausführt, es sehen kann. Die beste Vorgehensweise besteht darin, keine unformatierten Kennwörter zu speichern. Die nächstbeste Vorgehensweise besteht darin, sie in einer Datei abzulegen, die nur der Eigentümer lesen kann.quelle