Cara merangkak menggunakan wget untuk mengunduh HANYA file HTML (abaikan gambar, css, js)

14

Pada dasarnya, saya ingin merayapi seluruh situs dengan Wget, tetapi saya membutuhkannya untuk TIDAK PERNAH mengunduh aset lain (mis. Citra, CSS, JS, dll.). Saya hanya ingin file HTML.

Pencarian Google sama sekali tidak berguna.

Ini perintah yang sudah saya coba:

wget --limit-rate=200k --no-clobber --convert-links --random-wait -r -E -e robots=off -U "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.102 Safari/537.36" -A html --domain=www.example.com http://www.example.com

Situs kami adalah hybrid flat-PHP dan CMS. Jadi, HTML "file" bisa /path/to/page, /path/to/page/, /path/to/page.php, atau /path/to/page.html.

Saya bahkan sudah memasukkan -R js,csstetapi masih mengunduh file, MAKA menolaknya (buang-buang bandwidth, CPU, dan server load sia-sia!).

Nathan JB
sumber
2
apa perintah yang telah Anda coba sejauh ini? Jika penamaan file konsisten, Anda harus dapat menggunakan flag -R. Atau, Anda dapat menggunakan flag --ignore-tag dan mengabaikan skrip dan tag img.
ernie
Seberang: Kecualikan daftar file tertentu di wget
Ƭᴇcʜιᴇ007
Saya sudah mencoba menggunakan --accept = html, tetapi ia mengunduh file CSS LALU menghapusnya. Saya ingin mencegah mereka mengunduh. Permintaan header baik-baik saja, misalnya - Misalnya saya perhatikan Length: 558 [text/css]pada file yang tidak saya inginkan. Jika saya bisa menghentikan permintaan jika header tidak kembali text/html, saya akan gembira.
Nathan JB

Jawaban:

13

Komentar @ernie tentang --ignore-tagsmenuntun saya ke jalan yang benar! Ketika saya melihat ke --ignore-tagsdalam man, saya perhatikan --follow-tags.

Pengaturan --follow-tags=amemungkinkan saya untuk melewati img, link, script, dll

Ini mungkin terlalu terbatas untuk beberapa orang yang mencari jawaban yang sama, tetapi sebenarnya berfungsi dengan baik dalam kasus saya (tidak apa-apa jika saya melewatkan beberapa halaman).

Jika ada yang menemukan cara untuk memungkinkan pemindaian SEMUA tag, tetapi mencegah wgetdari menolak file hanya setelah mereka diunduh (mereka harus menolak berdasarkan nama file atau header tipe Konten sebelum mengunduh), saya akan dengan senang hati menerima jawaban mereka!

Nathan JB
sumber
5

bagaimana dengan menambahkan opsi:

--reject '*.js,*.css,*.ico,*.txt,*.gif,*.jpg,*.jpeg,*.png,*.mp3,*.pdf,*.tgz,*.flv,*.avi,*.mpeg,*.iso'
--ignore-tags=img,link,script 
--header="Accept: text/html"
Spir
sumber