Berpura-pura saya ingin salinan halaman sederhana diunduh ke HD saya untuk penyimpanan permanen. Saya tidak mencari cara rekursif yang mendalam, hanya satu halaman, tetapi juga sumber daya apa pun yang dimuat oleh halaman itu untuk diunduh juga.
Contoh: https://www.tumblr.com/
Mengharapkan:
- Index.html
- Gambar apa pun yang dimuat
- File JS apa pun yang dimuat
- File CSS apa pun yang dimuat
- Gambar apa saja yang dimuat dalam file CSS
- tautan untuk sumber daya halaman yang dilokalkan untuk bekerja dengan salinan yang diunduh (tidak ada ketergantungan web)
Saya tertarik untuk mengetahui apakah Anda dapat membantu saya menemukan sintaks wget terbaik atau alat lain yang akan melakukan ini. Alat yang saya coba biasanya gagal mendapatkan gambar dimuat oleh CSS, sehingga halaman tidak pernah terlihat benar ketika dimuat secara lokal. Terima kasih!
Solusi Tangen
Saya menemukan cara untuk melakukan ini menggunakan FireFox. Simpan default rusak dan ada addon yang disebut "Simpan Lengkap" yang tampaknya dapat melakukan pekerjaan dengan baik dengan ini. Namun, Anda tidak dapat mengunduhnya karena dikatakan tidak didukung dalam versi FireFox saat ini. Alasannya adalah itu dimasukkan ke dalam addon ini: "Mozilla Archive Format". Instal itu, maka ketika Anda menggunakan File> "Save Page As .." ada opsi baru yang disebut "Web Page, complete" yang pada dasarnya adalah addon lama, yang memperbaiki implementasi stok yang digunakan FireFox (yang mengerikan). Ini bukan solusi WGET tetapi memberikan solusi yang bisa diterapkan.
EDIT: Masalah konyol lain bagi siapa saja yang mungkin mengikuti pertanyaan ini di masa depan, mencoba melakukan ini. Agar addon berfungsi dengan benar, Anda perlu Tools> Mozilla Archive Format dan ubah pengaturan default (buruk) dari "ambil snapshot setia halaman" menjadi "simpan skrip dan sumber menggunakan Simpan Lengkap", jika tidak addon akan mengosongkan semua file skrip Anda dan ganti dengan teks "/ * Script dihapus oleh snapshot save * /".
Jawaban:
wget -p -k http://ExampleSite.com
-P akan memberi Anda semua elemen yang diperlukan untuk melihat situs dengan benar (css, gambar, dll). -K akan mengubah semua tautan (termasuk tautan untuk CSS & gambar) untuk memungkinkan Anda melihat halaman secara offline saat muncul secara online.
Pembaruan: Ini khusus untuk situs contoh Anda: tumblr.com
Kerusakan:
-H = Memungkinkan wget untuk pergi ke span host asing. Diperlukan karena tumblr tidak memiliki gambar di halaman depan pada alamat yang sama, mereka menggunakan secure.assets.tumblr.com lihat catatan tentang tidak termasuk domain
-N = hanya akan mengambil file yang lebih baru dari yang Anda miliki saat ini, jika Anda mengunduh halaman yang sama lagi dari waktu ke waktu
-k = konversi tautan Anda untuk melihatnya offline dengan benar
-p = meraih semua elemen yang diperlukan untuk melihatnya dengan benar (css, gambar, dll)
--exclude-domains = karena beranda tumblr.com memiliki tautan untuk quantserve.com dan saya rasa Anda tidak menginginkan hal ini, Anda harus mengecualikannya dari unduhan wget Anda. Catatan : Ini adalah salah satu yang cukup penting yang harus Anda gunakan dengan -H karena jika Anda pergi ke sebuah situs dan mereka memiliki beberapa tautan untuk host luar (pikirkan pengiklan & analitik) maka Anda akan mengambil barang itu juga!
--tidak perlu periksa sertifikat karena tumblr menggunakan https
-U mengubah agen-pengguna. Tidak benar-benar diperlukan dalam hal ini karena memungkinkan agen pengguna wget default tapi saya tahu beberapa situs akan memblokirnya. Saya hanya melemparkannya di sini sehingga jika Anda mengalami masalah di situs lain. Dalam cuplikan contoh yang saya berikan, muncul sebagai Mozilla Firefox 6.02a
akhirnya Anda memiliki situs: https://www.tumblr.com
sumber
Untuk situs spesifik yang Anda sebutkan dan banyak lainnya yang dikodekan seperti itu wget (dan curl) tidak akan berfungsi. Masalahnya adalah bahwa beberapa tautan aset yang diperlukan untuk membuat halaman di browser dibuat sendiri melalui javascript. Wget memiliki permintaan fitur yang tertunda untuk menjalankan javascript:
http://wget.addictivecode.org/FeatureSpecifications/JavaScript
Namun hingga itu selesai, situs yang membangun tautan aset menggunakan javascript tidak akan dapat dikloning menggunakan wget. Solusi termudah adalah menemukan alat yang benar-benar membangun DOM dan mem-parsing javascript seperti mesin browser (yaitu metode firefox yang Anda sebutkan).
sumber
Anda juga dapat melakukan ini secara otomatis (atau secara terprogram jika Anda melakukan pengkodean) dengan mengeluarkan perintah via shell menggunakan wget:
Ini akan mengunduh halaman dan file internal dan membuat tautan lokal.
sumber
Saya pikir itu akan mengambil segalanya, tetapi mencobanya dan mencari tahu.
sumber
$ ( man wget ):
sumber