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
Alasan mengapa perintah itu tidak berhasil adalah karena menggunakan --domains dengan sendirinya tidak --span-hostsmenyala. Menambahkan --span-hostsakan memecahkan masalah. : |
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:
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.
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.
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.
--domains
dengan sendirinya tidak--span-hosts
menyala. Menambahkan--span-hosts
akan memecahkan masalah. : |Jawaban:
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:
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>
sumber
domainA,domainB'; use
pada 'atau `off'. Setelah berubah menjadi aktif, itu tidak berhasil.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.--span-hosts --domains=example.org,iana.org
- saya pikir--span-hosts
harus boolean, dan kemudian Anda gunakan--domains
untuk menentukan host mana yang akan span.wget --recursive --level = inf --page-requisites --convert-links --html-extension -rH -DdomainA, domainB domainA
sumber
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 .
sumber
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.
sumber