Einige Teile von Wikipedia werden anders angezeigt, wenn Sie angemeldet sind. Ich möchte Benutzerseiten erstellen, damit sie so aussehen, als ob ich angemeldet wäre.
Gibt es eine Möglichkeit, Benutzerseiten wie diese zu erstellen?
http://en.wikipedia.org/wiki/User:A
Dies ist die Anmeldeseite:
http://en.wikipedia.org/w/index.php?title=Special:UserLogin&returnto=Login&campaign=ACP3
Antworten:
Der einfache Weg: Loggen Sie sich mit Ihrem Browser ein und geben Sie die Cookies an wget
Einfachste Methode: Im Allgemeinen müssen Sie wget oder curl mit den (angemeldeten) Cookies einer bestimmten Website bereitstellen, damit diese Seiten abrufen können, als wären Sie angemeldet .
Wenn Sie Firefox verwenden, können Sie dies ganz einfach über das Add-On " Cookies exportieren" tun . Installieren Sie das Add-On und:
cookies.txt
Datei (Sie können den Dateinamen / das Ziel ändern).Öffnen Sie ein Terminal und verwenden Sie
wget
mit der--load-cookies=FILENAME
Option, zcurl --cookie cookies.txt ...
(Ich werde versuchen, diese Antwort für Chrome / Chromium-Nutzer zu aktualisieren.)
Der schwierige Weg: Verwenden Sie Curl (vorzugsweise) oder Wget , um die gesamte Sitzung zu verwalten
--cookie-jar
oder wget--save-cookies --keep-session-cookies
zusammen mit der HTTP / S-PUT-Methode, um sich bei einer Site anzumelden, die Anmelde-Cookies zu speichern und sie dann zu verwenden Einen Browser simulieren.quelle
grep mydomain cookies.txt > mydomain-cookies.txt
Eine weitere einfache Lösung, die bei mir ohne zusätzliche Installation funktioniert hat:
Dadurch erhalten Sie einen Befehl, den Sie direkt in Ihre Shell einfügen können und der alle Ihre Cookie-Anmeldeinformationen enthält, z
Sie können dann die URL im Befehl ändern, um das abzurufen, was Sie möchten.
quelle
Mit cURL ist der Umgang mit Cookies auf beide Arten sehr einfach.
curl www.target-url.com -c cookie.txt
Dann wird eine Datei mit dem Namen cookie.txt gespeichert. Aber Sie müssen eingeloggt sein , so muß mit Argumenten verwenden --data wie:curl -X --data "var1=1&var2=2" www.target-url.com/login.php -c cookie.txt
. Sobald Sie ein protokolliertes Cookie erhalten, können Sie es senden mit:curl www.target-url.com/?user-page.php -b cookie.txt
Verwenden Sie zum Speichern und Senden einfach -c (--cookie) oder -b (--cookie-jar).
Hinweis 1: Die Verwendung von cURL CLI ist viel einfacher als PHP und möglicherweise auch schneller.
Um den endgültigen Inhalt zu speichern, können Sie einfach
> filename.html
Ihren cURL-Befehl hinzufügen und dann den vollständigen HTML-Code speichern.Anmerkung 2 zu "full": Sie können mit cURL kein Javascript rendern, sondern nur den Quellcode.
quelle
-X
parameter steht für "do post", aber using--data=xxx
-X
ist implizit, so dass Sie es sicher entfernen können.-b
istread cookie
Für diejenigen, die sich noch für diese Fragen interessieren, gibt es eine sehr nützliche Chrome-Erweiterung namens CurlWGet , mit der Sie eine
wget
/ -Anforderungcurl
mit Authentifizierungsmaßnahmen usw. mit einem Klick generieren können . Führen Sie die folgenden Schritte aus, um diese Erweiterung zu installieren:Genießen!
quelle
Der Blog-Beitrag Wget mit Firefox-Cookies zeigt, wie Sie auf die SQLite-Datendatei zugreifen, in der Firefox seine Cookies speichert. Auf diese Weise müssen die Cookies für die Verwendung mit wget nicht manuell exportiert werden. Ein Kommentar deutet darauf hin, dass es nicht mit Sitzungscookies funktioniert, aber für die Websites, mit denen ich es ausprobiert habe, hat es funktioniert.
quelle
Schauen Sie sich cliget für Firefox an.
Beim Herunterladen können Sie im letzten Download-Dialogfeld den Download als Curl-Befehlszeile in die Zwischenablage kopieren.
quelle
Hast du das versucht?
quelle
Versuchen Sie etwas wie:
Siehe auch diesen Link:
Wie lade ich diese Webseite mit wget herunter?
quelle
> filename.html
diese Option, um die Ausgabe im aktuellen Verzeichnis zu speichern oder einen vollständigen Dateipfad zu erstellen. Dies gilt sowohl für Linux- als auch für Windows-Systeme.Für kompliziertere website-basierte Anmeldungen sollten Sie auch ein Python-Skript und ein Modul verwenden, das einen Browser imitiert, z. B. http://wwwsearch.sourceforge.net/mechanize/ anstelle von
curl
oderwget
.Auf diese Weise werden Sitzungscookies automatisch gehandhabt. Sie können Links folgen und Anmeldeformulare ausfüllen und so den Anmeldevorgang selbst "skripten", als ob Sie Ihren Webbrowser verwenden würden.
quelle