Cara menyimpan semua halaman web yang ditautkan dari satu

15

Saya ingin menyimpan halaman web ini dan semua halaman yang terhubung dengannya. dan berharap memiliki tautan yang sama antara laman web yang disimpan.

Apakah ada beberapa cara alih-alih membuka dan menyimpan setiap halaman yang ditautkan?

Tim
sumber

Jawaban:

12

Anda dapat melakukan apa yang Anda inginkan dengan utilitas baris perintah wget . Jika Anda memberikan -ropsi, itu akan mengunduh halaman web secara rekursif. Sebagai contoh:

wget -r http://mat.gsia.cmu.edu/orclass/integer/integer.html

Ini akan mengunduh laman web itu dan apa pun tautannya. Anda juga dapat membuatnya hanya berulang sejumlah tingkat, untuk melakukan ini, Anda cukup memberikan -rnomor. Seperti itu:

wget -r 5 http://mat.gsia.cmu.edu/orclass/integer/integer.html
Wuffers
sumber
@ Mark: Terima kasih! Sekarang saya mencoba mengunduh mat.gsia.cmu.edu/orclass dan halaman-halaman yang ditautkan menggunakan perintah wget -r mat.gsia.cmu.edu/orclass . wget akan membuat direktori mat.gsia.cmu.edu di bawah yang saya tentukan dan mengunduh halaman di bawahnya. Tetapi tautan antara halaman yang diunduh tidak memiliki mat.gsia.cmu.edu di jalurnya, jadi itu menjadi masalah dan saya tidak bisa berpindah dari satu halaman ke halaman lain dengan mengklik tautannya. Saya bertanya-tanya mengapa dan bagaimana menyelesaikan masalah? Terima kasih!
Tim
Saya tidak berpikir bahwa Anda dapat mengunduh tautan eksternal secara rekursif, @Tim.
Wuffers
Apakah "tautan eksternal" berarti yang tidak di bawah jalur saat ini?
Tim
@ Tim: Dengan tautan eksternal maksud saya tautan yang merujuk di luar mat.gsi.cmu.edu
Wuffers
1
@Tim: Oh, baiklah. Maaf atas kesalahpahaman ini. Saya pikir Anda dapat mencoba mengedit file HTML sendiri untuk memeriksa dan mencoba membuatnya berfungsi.
Wuffers
10

Utas ini sudah tua sekarang, tetapi orang lain mungkin melihatnya. Terima kasih, Wuffers, karena mengarahkan saya ke arah yang benar tetapi, untuk memperluas jawaban Wuffers: Versi modern wget memiliki sejumlah opsi berguna untuk mengulangi tautan dan menambalnya menjadi tautan relatif lokal sehingga Anda dapat menavigasi salinan lokal dari situs web. Gunakan opsi -r untuk recurse, opsi -k untuk menambal tautan lokal, opsi -H untuk melintasi ke domain selain yang asli, opsi -D untuk membatasi domain yang Anda lintasi, opsi -l untuk membatasi kedalaman rekursi, dan opsi -p untuk memastikan bahwa daun traversal Anda memiliki semua yang mereka butuhkan untuk ditampilkan dengan benar. Misalnya, yang berikut ini akan mengunduh halaman dan segala sesuatu yang dengan segera terhubung, membuatnya dapat dijelajahi secara lokal,

wget -r -l 1 -p -k -H -D domain.com,relateddomain.com http://domain.com/page/in/domain

Dengan menggunakan perintah yang mirip dengan yang di atas, saya dapat mengunduh sepotong halaman wiki, dengan tautan eksternal, ke disk lokal saya tanpa mengunduh megabyte data asing. Sekarang, ketika saya membuka halaman root di browser saya, saya dapat menavigasi pohon tanpa koneksi internet. Satu-satunya gangguan adalah bahwa halaman root dikubur dalam subdirektori dan saya harus membuat halaman redirect tingkat atas untuk membuatnya nyaman untuk ditampilkan. Mungkin perlu beberapa percobaan dan kesalahan untuk memperbaikinya. Baca halaman manual wget dan bereksperimen.

Pablo Halpern
sumber
4

Anda dapat menggunakan perayap situs web seperti httrack , yang gratis.

Dari situs web;

[httrack] memungkinkan Anda untuk mengunduh situs World Wide Web dari Internet ke direktori lokal, membangun semua direktori secara rekursif, mendapatkan HTML, gambar, dan file lainnya dari server ke komputer Anda. HTTrack mengatur struktur tautan relatif situs asli. Cukup buka halaman situs web "mirrored" di browser Anda, dan Anda dapat menelusuri situs dari tautan ke tautan, seolah-olah Anda melihatnya secara online.

RJFalconer
sumber
1
+1 Aplikasi luar biasa! Tapi itu juga mengambil semua file zip yang ditautkan, yang tidak saya inginkan. Tapi mungkin aku seharusnya membaca instruksinya dulu!
finlaybob
Yup, ia bisa / akan mengikuti semua tautan sehingga akan mengunduh file. (@Finlaybob, apakah Anda tahu beranda yang tercantum di profil Anda telah diretas?)
RJFalconer
Aku tidak! Saya akan memeriksanya - terima kasih telah memberi tahu saya!
finlaybob