Cara mengunduh dengan wget tanpa mengikuti tautan dengan parameter


11

Saya mencoba mengunduh dua situs untuk dimasukkan dalam CD:

http://boinc.berkeley.edu/trac/wiki
http://www.boinc-wiki.info

Masalah yang saya alami adalah keduanya wiki. Jadi saat mengunduh dengan mis:

wget -r -k -np -nv -R jpg,jpeg,gif,png,tif http://www.boinc-wiki.info/

Saya mendapatkan banyak file karena ia juga mengikuti tautan seperti ...? Action = edit ...? Action = diff & versi = ...

Apakah ada yang tahu cara untuk mengatasi ini?

Saya hanya ingin halaman saat ini, tanpa gambar, dan tanpa perbedaan dll.

PS:

wget -r -k -np -nv -l 1 -R jpg,jpeg,png,gif,tif,pdf,ppt http://boinc.berkeley.edu/trac/wiki/TitleIndex

Ini berfungsi untuk berkeley tetapi boinc-wiki.info masih memberi saya masalah: /

PPS:

Saya mendapatkan halaman yang paling relevan dengan:

wget -r -k -nv  -l 2 -R jpg,jpeg,png,gif,tif,pdf,ppt http://www.boinc-wiki.info

Tidak perlu melintasi pos antara superuser dan serverfault serverfault.com/questions/156045/…
Bryan

Di mana saya harus mempostingnya?
Petinju Tie

ini tempat yang tepat. Ini bukan pertanyaan server.
David Z

Masih saya mendapat jawaban yang lebih baik di serverfault;)
Tie-fighter

Jawaban:


5

Versi baru wget (v.1.14) menyelesaikan semua masalah ini.

Anda harus menggunakan opsi baru --reject-regex=....untuk menangani string kueri.

Perhatikan bahwa saya tidak dapat menemukan manual baru yang menyertakan opsi-opsi baru ini, jadi Anda harus menggunakan perintah bantuan wget --help > help.txt


4
wget --reject-regex '(.*)\?(.*)' http://example.com

( --reject-type posixsecara default). Hanya berfungsi untuk versi terbaru (> = 1.14) wget, menurut komentar lain.

Hati-hati karena tampaknya Anda --reject-regexhanya dapat menggunakan satu kali per wgetpanggilan. Artinya, Anda harus menggunakan |dalam satu regex jika Anda ingin memilih pada beberapa regex:

wget --reject-regex 'expr1|expr2|…' http://example.com

Bisa jadi benar tentang persyaratan versi. Saya punya v1.12 dan opsi itu tidak valid. Setelah memutakhirkan ke v1.15 itu.
yunzen

Pergantian regex menggunakan |simbol ("pipa") tidak berfungsi untuk saya dengan GNU Wget 1.16.
sampablokuper

0
wget -R "*?action=*"

Ini akan mengecualikan apa pun yang berisi ?action=namanya.


3
"Perhatikan juga, bahwa string kueri (string di akhir URL yang dimulai dengan tanda tanya ('?') Tidak dimasukkan sebagai bagian dari nama file untuk aturan terima / tolak, meskipun ini sebenarnya akan berkontribusi pada nama yang dipilih untuk file lokal. Diharapkan bahwa versi masa depan Wget akan memberikan opsi untuk memungkinkan pencocokan terhadap string kueri. "
Tie-fighter

Hmm, aku pasti melewatkan itu. Sepertinya Anda tidak dapat melakukan ini dengan wget maka jika bahkan tidak tahu bahwa mereka adalah file yang berbeda. Saya menyarankan program yang berbeda.
Daisetsu

-3

Saya akan mengatakan bahwa lintah situs wiki publik adalah praktik yang buruk, karena menempatkan beban tambahan di atasnya.

Jika wiki bersifat publik dan pemilik situs tidak keberatan berbagi konten, mereka biasanya menyediakan dump backend (database atau apa pun) yang dapat diunduh. Jadi Anda tinggal mengunduh paket data, menyiapkan instance lokal dari mesin wiki yang sama, mengimpor data ke dalamnya dan memiliki salinan lokal. Setelah itu, jika mau, Anda bisa melakukan lintah secara lokal.


ada -w detik. misalnya -w 5. gnu.org/software/wget/manual/html_node/…
barlop
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.