Machen Sie wget Download-Seitenressourcen auf einer anderen Domain

16

Wie können Sie mit wget eine gesamte Site (Domain A) herunterladen, wenn sich ihre Ressourcen in einer anderen Domain befinden (Domain B)?
Ich habe es versucht:
wget -r --level=inf -p -k -E --domains=domainA,domainB http://www.domainA

Parsa
quelle
Beeindruckend! Nach all der Zeit niemand?
Parsa
Der Grund, warum der Befehl nicht funktioniert, liegt darin, dass die Verwendung --domainsfür sich allein nicht aktiviert wird --span-hosts. Das Hinzufügen --span-hostshätte das Problem gelöst. : |
Parsa

Antworten:

14
wget --recursive --level=inf --page-requisites --convert-links --html-extension \
     --span-hosts=domainA,domainB url-on-domainA

UPDATE: Ich erinnere mich, dass der obige Befehl in der Vergangenheit für mich funktioniert hat (das war 2010 und ich habe damals GNU Tools für Windows verwendet ). Ich musste es jedoch wie folgt ändern, als ich es heute verwenden wollte:

wget --recursive --level=inf --page-requisites --convert-links \
     --adjust-extension --span-hosts --domains=domainA,domainB domainA

Die Abkürzung dafür wäre: wget -rEDpkH -l inf domainA,domainB domainA

  • -r = --recursive
  • -l <depth> = --level=<depth>
  • -E = --adjust-extension
  • -p = --page-requisites
  • -K = --backup-converted
  • -k = --convert-links
  • -D <domain-list> = --domain-list=<domain-list>
  • -H = --span-hosts
  • -np = --no-parent
  • -U <agent-string> = --user-agent=<agent-string>

GNU Wget-Handbuch: https://www.gnu.org/software/wget/manual/wget.html

Parsa
quelle
Ich bekomme: wget: --span-hosts: Ungültiger Boolescher Wert domainA,domainB'; use für 'oder' aus '. Nach dem Wechsel zu on funktioniert es nicht.
Matthew Flaschen
@MatthewFlaschen Was ich hier geschrieben habe, hat für mich funktioniert. Könnten Sie die Argumente angeben, die Sie verwendet haben?
Parsa
Ich habe nicht den genauen Befehl, den ich zuvor ausgeführt habe. Ich habe jedoch das gleiche Problem mit: wget --recursive --level=inf --page-requisites --convert-links --html-extension --span-hosts=example.org,iana.org example.org Ich verwende GNU Wget 1.13.4 unter Debian.
Matthew Flaschen
3
Versuchen Sie --span-hosts --domains=example.org,iana.org- ich denke --span-hosts, muss ein Boolescher Wert sein, und dann geben Sie --domainsan, welche Hosts überspannt werden sollen.
Eric Mill
Konklone, --span-hosts ist ein Boolescher Wert ab 1.12 und später wusste ich das nicht. @MatthewFlaschen, ich habe die Antwort aktualisiert. Das funktioniert übrigens auch unter 1.11 und früher, wenn Sie GNU Tools für Windows verwenden.
Parsa
1

wget --recursive --level = inf --Seitenanforderungen --convert-links --html-extension -rH -DdomainA, domainB domainA

mnml
quelle
Dies funktioniert teilweise. Aus irgendeinem Grund scheint es jedoch nicht zu funktionieren, wenn die URL (am Ende) eine Weiterleitung ist. Außerdem werden auch Links heruntergeladen, nicht nur Seitenanforderungen. Außerdem sind -r und --recursive gleich.
Matthew Flaschen
0
wget --page-requisites --convert-links --adjust-extension --span-hosts --domains domainA,domainB domainA

Möglicherweise müssen Sie robots.txt ignorieren (beachten Sie, dass dies möglicherweise gegen einige Nutzungsbedingungen verstößt und Sie das erforderliche Minimum herunterladen sollten). Siehe https://www.gnu.org/software/wget/manual/wget.html#Robot-Exclusion .

Matthew Flaschen
quelle
-1

Erwägen Sie die Verwendung von HTTrack . Es gibt mehr Optionen beim Crawlen von Inhalten auf anderen Domänen als wget. Die Verwendung von wget mit --span-hosts, --domains und --accept war für meine Anforderungen nicht ausreichend, aber HTTrack hat den Job erledigt. Ich erinnere mich, dass das Festlegen von Umleitungsbeschränkungen für andere Domänen sehr hilfreich war.

watbywbarif
quelle