Merobek situs web melalui HTTP untuk mengunduh gambar, HTML dan CSS


22

Saya perlu menyalin situs melalui HTTP. Saya perlu mengunduh gambar, HTML, CSS, dan JavaScript serta mengaturnya dalam sistem file.

Adakah yang tahu bagaimana melakukan ini?


2
Anda harus menyebutkan bahwa Anda tidak akan menggunakan perangkat lunak ini untuk pelanggaran hak cipta. Kalau tidak, kami hanya berasumsi bahwa Anda ingin mencerminkan konten orang lain sehingga Anda dapat menghasilkan uang darinya.
belgariontheking

Kami pernah meminta klien untuk pergi, tetapi ambil versi HTML statis dari situs mereka, meninggalkan CMS. Saya menggunakan HTTrack untuk menghasilkan situs statis. Ini bekerja dengan baik pada Windows dan Ubuntu.
TRiG

4
@belgariontheking: Menarik Anda menganggap yang terburuk. Kami juga menggunakan WinHTTrack untuk mengunduh versi HTML statis dari situs web dinamis kami sendiri.
Umber Ferrule

Jawaban:


40
wget -erobots=off --no-parent --wait=3 --limit-rate=20K -r -p -U "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)" -A htm,html,css,js,json,gif,jpeg,jpg,bmp http://example.com

Ini berjalan di konsol.

ini akan mengambil situs, menunggu 3 detik di antara permintaan, membatasi seberapa cepat unduhannya sehingga tidak membunuh situs, dan menutupi dirinya dengan cara yang membuatnya tampak seperti browser sehingga situs tidak memotong Anda menggunakan mekanisme anti-lintah.

Perhatikan -Aparameter yang menunjukkan daftar jenis file yang ingin Anda unduh.

Anda juga dapat menggunakan tag lain, -D domain1.com,domain2.comuntuk menunjukkan serangkaian domain yang ingin Anda unduh jika memiliki server lain atau apa pun untuk hosting berbagai jenis file. Tidak ada cara aman untuk mengotomatisasi itu untuk semua kasus, jika Anda tidak mendapatkan file.

wgetumumnya diinstal sebelumnya di Linux, tetapi dapat dengan mudah dikompilasi untuk sistem Unix lain atau diunduh dengan mudah untuk Windows: GNUwin32 WGET

Gunakan ini untuk kebaikan dan bukan kejahatan.


1
wget -erobots = off --no-parent --wait = 3 --limit-rate = 50K -r -p -U "Mozilla / 4.0 (kompatibel; MSIE 7.0; Windows NT 5.1)" -k --directory-prefix "C: \ rip" --halaman-syarat -Htm, aspx, php, jsp, asp, zip, png, html, css, js, json, gif, jpeg, jpg, bmp domain.com
Chris S

Apakah ini berfungsi pada "URL Kesombongan"? Saya khawatir tentang konten saya (OK, lagu) yang ditulis di situs jejaring sosial, dan saya ingin mencadangkannya secara lokal. Situs ini adalah "www.example.com" tetapi ada URL rias dengan nama pengguna saya "avi.example.com". Saya tidak ingin mengunduh seluruh situs, hanya konten saya!
Avi

Di Linux, Anda mungkin ingin menginstal wget dari sumber. Versi Ubuntu, misalnya, tidak mem-parsing CSS sementara wget up tidak.
GDR

16

Bagus, Solusi Gratis: HTTrack

HTTrack adalah utilitas browser offline gratis (GPL, libre / gratis) dan mudah digunakan.

Ini memungkinkan Anda untuk mengunduh situs World Wide Web dari Internet ke direktori lokal, membangun semua direktori secara rekursif, mendapatkan HTML, gambar, dan file lain 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. HTTrack juga dapat memperbarui situs cermin yang ada, dan melanjutkan unduhan yang terputus. HTTrack sepenuhnya dapat dikonfigurasi, dan memiliki sistem bantuan terintegrasi.


7

Pada sistem Linux, 'wget' melakukan ini, cukup banyak.

Itu juga telah porting ke beberapa platform lain, seperti beberapa jawaban lainnya menyebutkan.



Karena Linux, saya mungkin hanya akan membuat VM Ubuntu, menjalankan wget, dan mentransfer file kembali ke komputer host saya. Sepertinya itu akan lebih cepat daripada porting ke Windows. :) (Memang, port ke Windows mungkin latihan yang baik pula!)
JMD

Saya menjalankan debian di mesin saya. Dapatkah saya memberi tahu wget untuk mengambil subdirektori terkait / javascript / css / gambar dengan hanya memberikan domain root http?
Damon

# Unduh seluruh konten example.com wget -r -l 0 example.com

Ya ... atau gunakan port Windows asli, atau gunakan Cygwin ...
Tmdean

2

Jelas WGet telah disebutkan beberapa kali. UI terbaik yang saya temukan untuk itu adalah

Ada beberapa UI lain untuk WGet di luar, beberapa di antaranya adalah kandidat untuk pertanyaan ui terburuk


1

Lihatlah ekstensi Scrapbook untuk firefox. Itu pekerjaan yang luar biasa dalam hal ini dan juga berintegrasi dengan pembakar dan memungkinkan Anda untuk menghapus elemen dari DOM sebelum Anda menyimpan jika Anda mau.


1

Anda perlu menggunakan wget - yang tersedia untuk sebagian besar platform. curl tidak akan meminta dokumen secara rekursif, yang merupakan salah satu kekuatan utama wget.

Linux: (biasanya termasuk dalam distro) http://www.gnu.org/software/wget/
Windows: http://gnuwin32.sourceforge.net/packages/wget.htm
Mac: http: //www.geekology. co.za/blog/2009/02/macports-compile-and-install-open-source-software-on-mac-os-x/

TOLONG pastikan Anda tidak memalu situs web - mengatur penundaan yang sesuai antara permintaan, dan pastikan itu dalam persyaratan layanan situs.

-Adam


sebenarnya, server kami yang akan kami palu. situs ini dihasilkan secara dinamis melalui PHP dan CMS / DB agak rusak. ini adalah kisah yang berbelit-belit, saya adalah pengembang yang baru saja sampai di sini. tapi kami sedang membangun semuanya dalam django sekarang, jadi Anda tidak perlu khawatir.
Damon

1

Sebenarnya, menindaklanjuti komentar saya di posting GWLlosa, saya baru ingat saya sudah menginstal GnuWin32, dan tentu saja itu berisi port Windows dari wget.

http://sourceforge.net/projects/gnuwin32/

GnuWin32 provides Win32-versions of GNU tools,
or tools with a similar open source licence.
The ports are native ports, that is they rely
only on libraries provided with any 32-bits
MS-Windows operating system, such as
MS-Windows 95 / 98 / 2000 / NT / XP


1

wget --random-wait -r -p -e robots=off -U "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)" --limit-rate=20k -b http://www.example.com

  • -p : parameter memberitahu wget untuk memasukkan semua file, termasuk gambar.
  • -e robots=off : abaikan aturan situs robots.txt
  • -U "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)" : string agen pengguna
  • --random-wait : hindari masuk daftar hitam
  • --limit-rate=20k : membatasi laju pengunduhan file.
  • -b : lanjutkan wget setelah keluar.

Ini adalah params yang saya gunakan. Saya juga menambahkan -c(atau --continue) opsi ketika ada masalah dan saya harus memulai kembali proses.
kub1x


Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.