Wie kann ich diese Webseite mit Wget herunterladen?

6

Ich möchte die Webseite herunterladen http://forum.ubuntu-it.org/ , aber es erfordert einen Benutzernamen und ein Passwort. Also habe ich das benutzt:

wget --save-cookies cookies.txt --post-data 'user=goyamy&passwrd=mypassword' http://forum.ubuntu-it.org/

Aber es funktioniert nicht! Warum?

xRobot
quelle

Antworten:

2

Dies liegt möglicherweise daran, dass der Server Sitzungscookies verwendet, um die Authentifizierung zu verfolgen. Fügen Sie die Option hinzu --save-cookies neben, um das Speichern des Cookies zu erzwingen. Ihr Befehl sieht also so aus:

wget --keep-session-cookies --save-cookies cookies.txt --post-data 'user=goyamy&passwrd=mypassword' http://forum.ubuntu-it.org/

Ich habe es allerdings nicht getestet.

Kibet
quelle
6

Hier ist ein Beispielskript, das Cookies aus Chrome (v19) auslagert.

#!/bin/bash -e
#
# Quick and dirty script which dumps all Chrome cookies in 
# the specified SQLite database to stdout in Netscape format.

COOKIE_FILE='~/.config/google-chrome/Default/Cookies'

echo -e '.mode tabs \n select host_key, httponly, path, secure, ' \
  'expires_utc/10000000, name, value from cookies;' |
  sqlite3 $COOKIE_FILE |
  sed -e 's/\t0\t/\tFALSE\t/g ' -e 's/\t1\t/\tTRUE\t/g'
user137906
quelle
Es funktionierte nach dem Ersetzen der ~ im COOKIE_FILE von seinem besonderen Wert in meiner Konfiguration. Ich nehme an, es fehlt export oder ähnliches in meinem System. Der Fehler, den ich vor dieser Änderung erhalten habe, war unable to open database file.
naitoon
Bitte "zitieren" Sie die Variable in sqlite $COOKIE_FILE.
ankostis
0

Wie Colin vorschlägt, verwendet diese Site Sitzungscookies zur Authentifizierung, aber seine Antwort funktioniert nicht vollständig, da Sie nicht angemeldet werden.

Sie benötigen ein Cookie, damit wget bei der ersten Anforderung an den Server übermittelt wird. Benutze wget's --load-cookies Möglichkeit ( hier dokumentiert ). Beachten Sie, dass dies das alte Dateiformat cookies.txt verwendet und nicht das SQLite-Datenbankformat, das Firefox und Chrome derzeit verwenden.

Folgendes würde ich tun:

  1. Rufen Sie mit Firefox oder Chrome die Website auf und melden Sie sich an. (Stellen Sie sicher, dass Ihr Browser Cookies speichert.)
  2. Beenden Sie Ihren Browser
  3. Finden Sie Ihre Cookie-Datei
  4. In das Format cookies.txt konvertieren (siehe Hinweise unten)
  5. wget --load-cookies cookies.txt http://forum.ubuntu-it.org/

Zu den Optionen für die Konvertierung vom SQLite-Format in die Datei cookies.txt gehört a Python-Skript oder ein einfacheres SQLite-Skript (in den Kommentaren zu diesem vorherigen Link), aber das einfachste für Sie ist möglicherweise die Installation diese Firefox-Erweiterung .

Doug Harris
quelle