Meskipun bermanfaat, respons-respons sebelumnya gagal menyelesaikan pertanyaan yang mendasarinya secara ringkas, andal, dan berulang. Dalam posting ini, kami secara singkat merinci kesulitan dengan masing-masing dan kemudian menawarkan httrack
solusi berbasis sederhana .
Latar Belakang
Namun sebelum kita membahasnya , pertimbangkan membaca respons mpy yang ditulis dengan baik. Dalam pos yang diabaikan dengan menyedihkan, mpy dengan cermat mendokumentasikan skema pengarsipan Wayback Machine yang tidak jelas (dan benar-benar membingungkan).
Tidak mengejutkan, itu tidak cantik. Daripada mengarsipkan situs secara sehat ke dalam satu direktori, The Wayback Machine secara singkat menyebarkan satu situs di dua atau lebih direktori saudara yang teridentifikasi secara numerik. Mengatakan bahwa ini memperumit pencerminan akan menjadi pernyataan yang meremehkan.
Memahami perangkap mengerikan yang disajikan oleh skema ini adalah inti untuk memahami ketidakmampuan solusi sebelumnya. Mari kita lanjutkan, oke?
Solusi Sebelumnya 1: wget
Pertanyaan StackOverflow terkait "Memulihkan situs web lama dari waybackmachine" mungkin merupakan pelaku terburuk dalam hal ini, merekomendasikan wget
untuk mirroring Wayback. Tentu saja, rekomendasi itu pada dasarnya tidak sehat.
Dengan tidak adanya penulisan ulang URL eksternal yang kompleks (mis., Privoxy
), wget
Tidak dapat digunakan untuk mencerminkan situs yang diarsipkan Wayback dengan andal. Seperti detail mpy di bawah "Masalah 2 + Solusi," alat mirroring apa pun yang Anda pilih harus memungkinkan Anda untuk mengunduh secara non-transaktif hanya URL milik situs target. Secara default, sebagian besar alat mirroring mengunduh semua URL milik situs target dan situs yang ditautkan secara transitif dari situs itu - yang, dalam kasus terburuk, berarti "seluruh Internet."
Contoh konkret ada dalam urutan. Saat mencerminkan domain contoh kearescue.com
, alat pencerminan Anda harus :
- Sertakan semua URL yang cocok
https://web.archive.org/web/*/http://kearescue.com
. Ini adalah aset yang disediakan oleh situs target (misalnya, https://web.archive.org/web/20140521010450js_/http_/kearescue.com/media/system/js/core.js
).
- Kecualikan semua URL lainnya. Ini adalah aset yang disediakan oleh situs lain yang hanya ditautkan dari situs target (misalnya,
https://web.archive.org/web/20140517180436js_/https_/connect.facebook.net/en_US/all.js
).
Gagal mengecualikan URL tersebut biasanya menarik semua atau sebagian besar Internet yang diarsipkan pada saat situs diarsipkan, terutama untuk situs yang menanamkan aset yang dihosting secara eksternal (misalnya, video YouTube).
Itu akan buruk. Meskipun wget
memang menyediakan --exclude-directories
opsi baris perintah yang menerima satu atau beberapa pola URL yang cocok untuk dikecualikan, ini bukan ekspresi reguler tujuan umum; mereka gumpalan sederhana yang *
sintaksinya cocok dengan nol atau lebih karakter tidak termasuk/
. Karena URL yang dikecualikan mengandung banyak /
karakter secara sewenang-wenang , wget
tidak dapat digunakan untuk mengecualikan URL ini dan karenanya tidak dapat digunakan untuk mencerminkan situs yang diarsipkan dengan Wayback. Titik. Akhir dari kisah malang.
Masalah ini telah menjadi catatan publik setidaknya sejak tahun 2009. Masalah ini belum diselesaikan. Lanjut!
Solusi Sebelumnya 2: Scrapbook
Prinz merekomendasikan ScrapBook
, sebuah plugin Firefox. Plugin Firefox.
Mungkin itu yang perlu Anda ketahui. Sementara ScrapBook
's Filter by String...
fungsi tidak alamat tersebut 'Masalah 2 + Solusi,' itu tidak mengatasi berikutnya 'Masalah 3 + Solusi' - yaitu, masalah duplikat asing.
Masih dipertanyakan apakah ScrapBook
bahkan cukup mengatasi masalah sebelumnya. Seperti yang diakui mpy :
Meskipun Scrapbook gagal sejauh ini untuk mengambil situs sepenuhnya ...
Solusi yang tidak dapat diandalkan dan terlalu sederhana adalah non-solusi. Lanjut!
Solusi Sebelumnya 3: wget + Privoksi
mpy kemudian memberikan solusi yang kuat untuk meningkatkan keduanya wget
dan Privoxy
. Sementara wget
ini cukup sederhana untuk mengkonfigurasi, Privoxy
adalah sesuatu tetapi wajar. Atau sederhana.
Karena rintangan teknis yang tidak dapat ditanggung untuk menginstal, mengkonfigurasi, dan menggunakan dengan benar Privoxy
, kami belum mengkonfirmasi solusi mpy . Itu harus bekerja secara terukur, kuat. Mengingat adanya hambatan untuk masuk, solusi ini mungkin lebih sesuai untuk otomatisasi skala besar daripada rata-rata webmaster yang berusaha memulihkan situs skala kecil hingga menengah.
Apakah wget
+ Privoxy
patut dilihat? Benar. Tetapi sebagian besar pengguna super mungkin dilayani lebih baik dengan solusi yang lebih sederhana dan lebih mudah diterapkan.
Solusi Baru: httrack
Enter httrack
, sebuah utilitas command-line yang mengimplementasikan superset dari wget
fungsionalitas mirroring. httrack
mendukung pengecualian URL berbasis pola dan restrukturisasi situs sederhana. Yang pertama memecahkan "Masalah 2 + Solusi" mpy ; yang terakhir, "Masalah 3 + Solusi."
Dalam contoh abstrak di bawah ini, ganti:
${wayback_url}
oleh URL direktori tingkat atas yang mengarsipkan keseluruhan situs target Anda (mis., 'https://web.archive.org/web/20140517175612/http://kearescue.com'
).
${domain_name}
dengan nama domain yang sama hadir dalam ${wayback_url}
mengecualikan awalan http://
(misalnya, 'kearescue.com'
).
Kita mulai. Instal httrack
, buka jendela terminal, cd
ke direktori lokal tempat Anda ingin situs Anda diunduh, dan jalankan perintah berikut:
httrack\
${wayback_url}\
'-*'\
'+*/${domain_name}/*'\
-N1005\
--advanced-progressinfo\
--can-go-up-and-down\
--display\
--keep-alive\
--mirror\
--robots=0\
--user-agent='Mozilla/5.0 (X11;U; Linux i686; en-GB; rv:1.9.1) Gecko/20090624 Ubuntu/9.04 (jaunty) Firefox/3.5'\
--verbose
Setelah selesai, direktori saat ini harus berisi satu subdirektori untuk setiap jenis file yang dicerminkan dari URL itu. Ini biasanya termasuk setidaknya:
css
, mengandung semua stylesheet CSS cermin.
html
, mengandung semua halaman HTML yang dipantulkan.
js
, mengandung semua JavaScript yang dicerminkan.
ico
, mengandung satu cermin favicon.
Karena secara httrack
internal menulis ulang semua konten yang diunduh untuk mencerminkan struktur ini, situs Anda sekarang dapat dijelajahi sebagaimana adanya tanpa modifikasi. Jika Anda menghentikan perintah di atas secara prematur dan ingin melanjutkan pengunduhan, tambahkan --continue
opsi ke perintah yang sama persis dan coba lagi.
Itu dia. Tidak diperlukan liuk eksternal, penulisan ulang URL yang rawan kesalahan, atau server proxy berbasis aturan.
Selamat menikmati, sesama pengguna super.
20110722080716
snapshot, maka-np
opsi wget tidak akan membantu.