Ich möchte Links unter www.website.com/XYZ crawlen und nur die Links herunterladen, die unter www.website.com/ABC liegen.
Ich verwende den folgenden wget-Befehl, um die gewünschten Dateien abzurufen:
wget -I ABC -r -e robots=off --wait 0.25 http://www.website.com/XYZ
Das funktioniert einwandfrei, wenn ich wget 1.13.4 verwende. Das Problem ist jedoch, dass ich diesen Befehl auf einem Server verwenden muss, auf dem wget 1.11 installiert ist. Wenn ich denselben Befehl verwende, werden zusätzliche Domänen heruntergeladen, beispielsweise:
www.website.de
www.website.it
...
Wie kann ich dieses Problem vermeiden? Ich habe versucht,
--exclude domains=www.website.de,www.website.it
Allerdings wurden diese Domänen weiterhin heruntergeladen.
Beachten Sie auch, dass ich es nicht verwenden kann, --no-parent
da sich die gewünschten Dateien auf einer höheren Ebene befinden (ich möchte Dateien unter website.com/ABC, indem ich Links unter website.com/XYZ crawle).
Irgendwelche Hinweise?
Antwort1
Sie können versuchen --max-redirect 0
, oder --domains example.com
als Gegenteil von zu verwenden --exclude-domains example.com
.
Sehen:
-D, --domains=LIST comma-separated list of accepted domains.
--exclude-domains=LIST comma-separated list of rejected domains.
--follow-tags=LIST comma-separated list of followed HTML tags.
--ignore-tags=LIST comma-separated list of ignored HTML tags.
-np, --no-parent don't ascend to the parent directory.
--max-redirect maximum redirections allowed per page.
Antwort2
Das ist falsch:
--exclude domains=www.website.de,www.website.it
Der richtige Weg ist:
--exclude-domains www.website.de,www.website.it
Aus der wget-Manpage:
--exclude-domains domain-list Specify the domains that are not to be followed.