Wie weisen Sie wget an, eine Website rekursiv zu crawlen und nur bestimmte Arten von Bildern herunterzuladen?
Ich habe versucht, damit eine Site zu crawlen und nur JPEG-Bilder herunterzuladen:
wget --no-parent --wait=10 --limit-rate=100K --recursive --accept=jpg,jpeg --no-directories http://somedomain/images/page1.html
Obwohl page1.html Hunderte von Links zu Unterseiten enthält, die selbst direkte Links zu Bildern enthalten, meldet wget Dinge wie "Entfernen von subpage13.html, da es abgelehnt werden sollte" und lädt niemals Bilder herunter, da keine direkt mit verlinkt sind von der Startseite.
Ich gehe davon aus, dass dies darauf zurückzuführen ist, dass mein --accept sowohl zum Crawlen als auch zum Filtern von Inhalten zum Herunterladen verwendet wird, während ich möchte, dass es nur zum Herunterladen von Inhalten verwendet wird. Wie kann ich wget dazu bringen, alle Links zu crawlen, aber nur Dateien mit bestimmten Erweiterungen wie * .jpeg herunterzuladen?
BEARBEITEN: Einige Seiten sind auch dynamisch und werden über ein CGI-Skript generiert (z. B. img.cgi? Fo9s0f989wefw90e). Selbst wenn ich cgi zu meiner Akzeptanzliste hinzufüge (z. B. --accept = jpg, jpeg, html, cgi), werden diese immer abgelehnt. Gibt es einen Weg, dies zu umgehen?
Wie erwarten Sie, dass wget den Inhalt von subpage13.html (und damit die JPGs, auf die es verweist) kennt, wenn es nicht heruntergeladen werden darf? Ich schlage vor, Sie erlauben HTML, bekommen, was Sie wollen, und entfernen dann, was Sie nicht wollen.
Ich bin mir nicht ganz sicher, warum Ihre CGIs abgelehnt werden ... Gibt es einen Fehler, der von wget ausgegeben wird? Vielleicht machen Sie wget verbose (
-v
) und sehen. Könnte am besten als separate Frage sein.Das heißt, wenn Sie sich nicht für Bandbreite interessieren und viele herunterladen, entfernen Sie, was Sie nicht wollen, es spielt keine Rolle.
Schauen Sie auch aus
--html-extension
Von der Manpage:
--restrict-file-names=unix
könnte auch aufgrund dieser CGI-URLs nützlich sein ...quelle
--no-parent
Ich wollte gerade darauf hinweisen, aber ich werde dort aufhören.Sie können MetaProducts Offline Explorer auch ohne Programmierung verwenden
quelle
Versuchen Sie, die
--page-requisites
Option hinzuzufügenquelle