Bagaimana cara mengunduh semua file (tetapi bukan HTML) dari situs web menggunakan wget?

162

Bagaimana cara menggunakan wgetdan mendapatkan semua file dari situs web?

Saya membutuhkan semua file kecuali file halaman web seperti HTML, PHP, ASP dll.

Aniruddhsinh
sumber
Bahkan jika Anda ingin mengunduh php, tidak mungkin menggunakan wget. Kita hanya bisa mendapatkan HTML mentah menggunakan wget. Saya kira Anda tahu alasannya
Venkateshwaran Selvaraj
NB: Selalu periksa wget --spiderdulu, dan selalu tambahkan -w 1(atau lebih -w 5) agar Anda tidak membanjiri server orang lain.
isomorphismes
1
Bagaimana saya bisa mengunduh semua file pdf di halaman ini? pualib.com/collection/pua-titles-a.html
Stack Overflow adalah situs untuk pertanyaan pemrograman dan pengembangan. Pertanyaan ini tampaknya di luar topik karena ini bukan tentang pemrograman atau pengembangan. Lihat Topik apa yang bisa saya tanyakan di sini di Pusat Bantuan. Mungkin Super User atau Unix & Linux Stack Exchange akan menjadi tempat yang lebih baik untuk bertanya. Lihat juga Di mana saya mengirim pertanyaan tentang Dev Ops?
jww

Jawaban:

262

Untuk memfilter untuk ekstensi file tertentu:

wget -A pdf,jpg -m -p -E -k -K -np http://site/path/

Atau, jika Anda lebih suka nama opsi panjang:

wget --accept pdf,jpg --mirror --page-requisites --adjust-extension --convert-links --backup-converted --no-parent http://site/path/

Ini akan mencerminkan situs, tetapi file tanpa jpgatau pdfekstensi akan dihapus secara otomatis.

Zsolt Botykai
sumber
17
Jika Anda hanya ingin mengunduh file tanpa seluruh arsitektur direktori, Anda dapat menggunakan opsi -dan .
diabloneo
4
apa arti dari masing-masing bendera?
Jürgen Paul
Saya pikir --acceptini case-sensitive, jadi Anda harus melakukannya--accept pdf,jpg,PDF,JPG
Flimm
8
tidak yakin apakah ini dengan versi baru wgettetapi Anda harus menentukan --progressjenisnya, misalnya--progress=dot
jamis
@ Flimm Anda juga dapat menggunakan --ignore-caseflag untuk membuat --acceptcase case-sensitive.
Harsh
84

Ini mengunduh seluruh situs web untuk saya:

wget --no-clobber --convert-links --random-wait -r -p -E -e robots=off -U mozilla http://site/path/
izilotti
sumber
20
+1 untuk -e robots=off! Ini akhirnya memperbaiki masalah saya! :) Terima kasih
NHDaly
12
The --random-waitpilihan adalah jenius;)
poitroae
2
@izilotti Bisakah pemilik situs mencari tahu apakah Anda MENGATAS file situs mereka dengan metode ini?
Elias7
1
@ apa sempurna itu pasti mungkin.
Jack
1
@JackNicholsonn Bagaimana pemilik situs tahu? Agen yang digunakan adalah Mozilla, yang berarti semua header akan masuk sebagai browser Mozilla, sehingga mendeteksi wget yang digunakan tidak akan mungkin? Harap perbaiki jika saya salah. terima kasih
KhoPhi
63
wget -m -p -E -k -K -np http://site/path/

halaman manual akan memberi tahu Anda apa yang dilakukan opsi-opsi itu.

wgethanya akan mengikuti tautan, jika tidak ada tautan ke file dari halaman indeks, maka wgettidak akan tahu tentang keberadaannya, dan karenanya tidak mengunduhnya. yaitu. ini membantu jika semua file ditautkan ke dalam halaman web atau dalam indeks direktori.

Jesse
sumber
Terima kasih atas balasan :) Ini menyalin seluruh situs dan saya hanya perlu file (mis. Txt, pdf, gambar dll) di situs web
Aniruddhsinh
25

Saya mencoba mengunduh file zip yang ditautkan dari halaman tema Omeka - tugas yang hampir serupa. Ini bekerja untuk saya:

wget -A zip -r -l 1 -nd http://omeka.org/add-ons/themes/
  • -A: hanya menerima file zip
  • -r: berulang
  • -l 1: satu tingkat dalam (yaitu, hanya file yang terhubung langsung dari halaman ini)
  • -nd: jangan membuat struktur direktori, cukup unduh semua file ke direktori ini.

Semua jawaban dengan -k, -K, -Edll pilihan mungkin belum benar-benar memahami pertanyaan, seperti yang seperti untuk menulis ulang halaman HTML untuk membuat struktur lokal, mengubah nama .phpfile dan sebagainya. Tidak berhubungan.

Untuk benar-benar mendapatkan semua file kecuali .html dll:

wget -R html,htm,php,asp,jsp,js,py,css -r -l 1 -nd http://yoursite.com
Steve Bennett
sumber
2
-Acase-sensitive, saya pikir, jadi Anda harus melakukannya-A zip,ZIP
Flimm
7

Anda dapat mencoba:

wget --user-agent=Mozilla --content-disposition --mirror --convert-links -E -K -p http://example.com/

Anda juga dapat menambahkan:

-A pdf,ps,djvu,tex,doc,docx,xls,xlsx,gz,ppt,mp4,avi,zip,rar

untuk menerima ekstensi spesifik, atau hanya menolak ekstensi spesifik:

-R html,htm,asp,php

atau untuk mengecualikan area spesifik:

-X "search*,forum*"

Jika file diabaikan untuk robot (mis. Mesin pencari), Anda harus menambahkan juga: -e robots=off

kenorb
sumber
5

Coba ini. Itu selalu berhasil untuk saya

wget --mirror -p --convert-links -P ./LOCAL-DIR WEBSITE-URL
Suneel Kumar
sumber
5
wget -m -A * -pk -e robots=off www.mysite.com/

ini akan mengunduh semua jenis file secara lokal dan mengarahkannya dari file html dan itu akan mengabaikan file robot

Abdalla Mohamed Aly Ibrahim
sumber
2

Pada sistem Windows untuk mendapatkan wget, Anda dapat melakukannya

  1. unduh Cygwin
  2. unduh GnuWin32
ebinx
sumber