วิธีดาวน์โหลดด้วย wget โดยไม่ต้องติดตามลิงก์พร้อมพารามิเตอร์


11

ฉันพยายามดาวน์โหลดสองเว็บไซต์เพื่อรวมไว้ในซีดี:

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

ปัญหาที่ฉันมีอยู่ก็คือพวกมันเป็นวิกิ ดังนั้นเมื่อดาวน์โหลดด้วยเช่น:

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

ฉันได้รับไฟล์จำนวนมากเพราะมันติดตามลิงค์เช่น ... ? action = edit ... ? action = diff & version = ...

มีใครรู้วิธีที่จะหลีกเลี่ยงปัญหานี้หรือไม่?

ฉันต้องการหน้าปัจจุบันโดยไม่มีภาพและไม่มีความต่างเป็นต้น

PS:

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

สิ่งนี้ใช้ได้กับ berkeley แต่ boinc-wiki.info ยังคงทำให้ฉันมีปัญหา: /

PPS:

ฉันได้รับสิ่งที่ดูเหมือนจะเป็นหน้าที่เกี่ยวข้องมากที่สุดด้วย:

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

ไม่จำเป็นต้องข้ามการโพสต์ระหว่าง superuser และ serverfault serverfault.com/questions/156045/…
Bryan

ฉันควรโพสต์ที่ไหน
Tie-fighter

นี่คือสถานที่ที่เหมาะสม ไม่ใช่คำถามเซิร์ฟเวอร์
David Z

ฉันยังได้คำตอบที่ดีกว่าที่ serverfault;)
Tie-fighter

คำตอบ:


5

wgetรุ่นใหม่(v.1.14)แก้ปัญหาเหล่านี้ทั้งหมด

คุณต้องใช้ตัวเลือกใหม่--reject-regex=....เพื่อจัดการสตริงการสืบค้น

โปรดทราบว่าฉันไม่พบคู่มือใหม่ที่มีตัวเลือกใหม่เหล่านี้ดังนั้นคุณต้องใช้คำสั่งช่วยเหลือ wget --help > help.txt


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

( --reject-type posixโดยค่าเริ่มต้น) ใช้ได้เฉพาะกับรุ่นล่าสุด (> = 1.14) wgetเท่านั้นตามความคิดเห็นอื่น

ระวังว่าดูเหมือนว่าคุณจะสามารถใช้--reject-regexเพียงหนึ่งครั้งต่อการwgetโทร นั่นคือคุณต้องใช้|ใน regex เดียวหากคุณต้องการเลือกในหลาย regex:

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

อาจเป็นจริงเกี่ยวกับข้อกำหนดของรุ่น ฉันมี v1.12 และตัวเลือกไม่ถูกต้อง หลังจากอัปเกรดเป็น v1.15 แล้ว
yunzen

การสลับ Regex โดยใช้สัญลักษณ์|("pipe") ไม่ทำงานสำหรับฉันกับ GNU Wget 1.16
sampablokuper

0
wget -R "*?action=*"

สิ่งนี้จะยกเว้นสิ่งที่มี?action=อยู่ในชื่อ


3
"หมายเหตุด้วยเช่นกันสตริงข้อความค้นหา (สตริงที่ท้าย URL ที่ขึ้นต้นด้วยเครื่องหมายคำถาม ('?') ไม่รวมอยู่ในชื่อไฟล์สำหรับยอมรับ / ปฏิเสธกฎแม้ว่าสิ่งเหล่านี้จะมีส่วนช่วยให้ชื่อที่เลือกนั้นจริง สำหรับไฟล์ในเครื่องคาดว่ารุ่นในอนาคตของ Wget จะให้ตัวเลือกเพื่ออนุญาตการจับคู่กับสตริงข้อความค้นหา "
Tie-fighter

อืมฉันต้องพลาดแน่ ดูเหมือนว่าคุณจะไม่สามารถทำสิ่งนี้ได้ด้วย wget ถ้าไม่รู้ด้วยซ้ำว่ามันเป็นไฟล์ที่แตกต่างกัน ฉันแนะนำโปรแกรมอื่น
Daisetsu

-3

ฉันจะบอกว่าการใช้ไซต์วิกิสาธารณะเป็นแนวทางปฏิบัติที่ไม่ดีเพราะทำให้มีการโหลดเพิ่มเติม

หากวิกินั้นเป็นสาธารณะและเจ้าของไซต์ไม่สนใจที่จะแชร์เนื้อหาพวกเขามักจะให้แบ็คเอนด์ที่ดาวน์โหลดได้ (ฐานข้อมูลหรืออะไรก็ตาม) ดังนั้นคุณจะต้องดาวน์โหลดชุดข้อมูลตั้งค่าอินสแตนซ์ในเครื่องของเครื่องมือ wiki เดียวกันนำเข้าข้อมูลลงในนั้นและมีสำเนาในเครื่อง หลังจากนั้นถ้าคุณต้องการคุณสามารถทำปลิงทะเลในพื้นที่


มี -w วินาที เช่น -w 5. gnu.org/software/wget/manual/html_node/…
barlop
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.