Buat sumber daya unduhan halaman wget pada domain yang berbeda

16

Bagaimana Anda menggunakan wget untuk mengunduh seluruh situs (domain A) ketika sumber dayanya ada di domain lain, (domain B)?
Saya sudah mencoba:
wget -r --level=inf -p -k -E --domains=domainA,domainB http://www.domainA

Parsa
sumber
Wow! Tidak ada yang setelah semua ini?
Parsa
Alasan mengapa perintah itu tidak berhasil adalah karena menggunakan --domains dengan sendirinya tidak --span-hostsmenyala. Menambahkan --span-hostsakan memecahkan masalah. : |
Parsa

Jawaban:

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

UPDATE: Saya ingat perintah di atas bekerja untuk saya di masa lalu (itu 2010 dan saya menggunakan Alat GNU untuk Windows saat itu); namun saya harus mengubahnya ke yang berikut ketika saya ingin menggunakannya hari ini:

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

Singkatan untuk itu adalah: 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>

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

Parsa
sumber
Saya mendapatkan: wget: --span-hosts: boolean tidak valid domainA,domainB'; use pada 'atau `off'. Setelah berubah menjadi aktif, itu tidak berhasil.
Matthew Flaschen
@ MatthewFlaschen Apa yang saya tulis di sini bekerja untuk saya. Bisakah Anda memberikan argumen yang Anda gunakan?
Parsa
Saya tidak memiliki perintah persis yang saya jalankan sebelumnya. Namun, saya memiliki masalah yang sama dengan: wget --recursive --level=inf --page-requisites --convert-links --html-extension --span-hosts=example.org,iana.org example.org Saya menggunakan GNU Wget 1.13.4 di Debian.
Matthew Flaschen
3
Coba --span-hosts --domains=example.org,iana.org- saya pikir --span-hostsharus boolean, dan kemudian Anda gunakan --domainsuntuk menentukan host mana yang akan span.
Eric Mill
Konklone, --span-hosts adalah boolean dari 1.12 dan kemudian, saya tidak tahu itu. @ MatthewFlaschen, saya memperbarui jawabannya. Ngomong-ngomong, itu masih bekerja pada 1.11 dan sebelumnya, jika Anda menggunakan GNU Tools untuk Windows.
Parsa
1

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

mnml
sumber
Ini sebagian berhasil. Namun, untuk beberapa alasan, sepertinya tidak berfungsi jika URL (pada akhirnya) adalah redirect. Juga, ia mengunduh tautan juga, bukan hanya syarat halaman. Juga, -r dan --recursive sama.
Matthew Flaschen
0
wget --page-requisites --convert-links --adjust-extension --span-hosts --domains domainA,domainB domainA

Anda mungkin perlu mengabaikan robots.txt (perhatikan, ini mungkin merupakan pelanggaran terhadap beberapa persyaratan layanan, dan Anda harus mengunduh persyaratan minimum). Lihat https://www.gnu.org/software/wget/manual/wget.html#Robot-Exclusion .

Matthew Flaschen
sumber
-1

Pertimbangkan menggunakan HTTrack . Ini memiliki lebih banyak opsi saat merayapi konten di domain lain daripada wget. Menggunakan wget dengan --span-hosts, --domains dan --accept di mana tidak cukup untuk kebutuhan saya tetapi HTTrack melakukan pekerjaan. Saya ingat bahwa menetapkan batas pengarahan ulang pada domain lain sangat membantu.

watbywbarif
sumber