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


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


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


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


-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.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.