
Wenn ich wget mit aktivierter rekursiver Option verwende, erhalte ich eine Fehlermeldung, wenn ich versuche, eine Datei herunterzuladen. Es denkt, der Link sei eine herunterladbare Datei, obwohl ich ihm in Wirklichkeit nur folgen müsste, um auf die Seite zu gelangen, die tatsächlich die gewünschten Dateien (oder weitere zu verfolgende Links) enthält.
wget -r -l 16 --accept=jpg website.com
Die Fehlermeldung lautet: ..., da es abgelehnt werden sollte. Dies tritt normalerweise auf, wenn der Website-Link, den es abrufen möchte, mit einer SQL-Anweisung endet. Das Problem tritt jedoch nicht auf, wenn derselbe wget-Befehl für diesen Link verwendet wird. Ich möchte wissen, wie genau es versucht, die Seiten abzurufen. Ich schätze, ich könnte immer ein bisschen in der Quelle herumstöbern, obwohl ich nicht weiß, wie chaotisch das Projekt ist. Vielleicht verstehe ich auch nicht genau, was „rekursiv“ im Zusammenhang mit wget bedeutet. Ich dachte, es würde jeden Link durchlaufen und durchlaufen und die Dateien mit der von mir angeforderten Erweiterung abrufen.
Ich habe das hier bei stackOverFlow gepostet, aber sie haben mich hierher weitergeleitet:) Ich hoffe, ihr könnt mir helfen.
EDIT: Ausgabe der Fehlermeldung
2010-04-13 16:54:47 (128 KB/s) - `somewebsite.com/index.php?id=917218' saved [10789]
Removing somewebsite.com/index.php?id=917218 since it should be rejected.
Die Quelle der Website verrate ich lieber nicht :)
Antwort1
Wie Hugh Allen betont, --accept=jpg
führt die Verwendung von just dazu, dass wget lädtnurDateien mit der Erweiterung .jpg (und .htm, .html, die immer abgerufen werden). Deshalb teilt Ihnen wget mit, dass die PHP-Datei entfernt wird. Versuchen Sie also, --accept=jpg,php
oder Ähnliches zu verwenden.
Sehen Sie sich diewget-Handbuchfür Einzelheiten. Ich empfehle Ihnen, es zu lesen, da der gesamte Annahme-/Ablehnungsmechanismus darin sehr ausführlich erklärt wird.
Antwort2
„Vielleicht“ --accept=jpg
bedeutet, alles andere abzulehnen.