วิธีการรวบรวมข้อมูลโดยใช้ wget เพื่อดาวน์โหลดไฟล์ HTML เท่านั้น (ไม่ใช้รูปภาพ, css, js)


14

โดยพื้นฐานแล้วฉันต้องการรวบรวมข้อมูลทั้งไซต์ด้วย Wget แต่ฉันไม่ต้องการดาวน์โหลดเนื้อหาอื่น ๆ (เช่นภาพ, CSS, JS และอื่น ๆ ) ฉันต้องการไฟล์ HTML เท่านั้น

การค้นหาของ Googleนั้นไร้ประโยชน์อย่างสมบูรณ์

นี่คือคำสั่งที่ฉันได้ลอง:

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

เว็บไซต์ของเราคือไฮบริดแบน PHP และ CMS ดังนั้น HTML "ไฟล์" อาจจะ/path/to/page, /path/to/page/, หรือ/path/to/page.php/path/to/page.html

ฉันได้รวมไว้ด้วย-R js,cssแต่มันยังคงดาวน์โหลดไฟล์จากนั้นก็ปฏิเสธ (เสียแบนด์วิดท์ CPU และโหลดเซิร์ฟเวอร์!)


2
คำสั่งที่คุณได้ลองไปแล้วคืออะไร หากการตั้งชื่อไฟล์นั้นสอดคล้องกันคุณควรจะสามารถใช้แฟล็ก -R หรือคุณสามารถใช้ --ignore-tags และละเว้นสคริปต์และแท็ก img
ernie


ฉันได้ลองใช้ --accept = html แล้ว แต่มันก็ดาวน์โหลดไฟล์ CSS แล้วก็ลบมันทิ้ง ฉันต้องการป้องกันไม่ให้ดาวน์โหลด คำขอส่วนหัวนั้นใช้ได้เช่น - ฉันสังเกตเห็นLength: 558 [text/css]ไฟล์ที่ฉันไม่ต้องการ ถ้าฉันสามารถหยุดการร้องขอถ้าส่วนหัวไม่กลับtext/htmlฉันจะร่าเริง
นาธาน JB

คำตอบ:


13

@ ความคิดเห็นของ ernie เกี่ยวกับ--ignore-tagsพาฉันลงเส้นทางที่ถูกต้อง! เมื่อผมมองขึ้น--ignore-tagsในผมสังเกตเห็นman--follow-tags

การตั้งค่า--follow-tags=aอนุญาตให้ฉันไปข้ามimg, link, scriptฯลฯ

อาจมีข้อ จำกัด เกินไปสำหรับบางคนที่มองหาคำตอบเดียวกัน แต่มันใช้งานได้ดีในกรณีของฉัน (ไม่เป็นไรถ้าฉันพลาดหน้าคู่)

หากใครพบวิธีที่จะอนุญาตให้สแกนแท็กทั้งหมด แต่ป้องกันไม่ให้wgetปฏิเสธไฟล์หลังจากที่พวกเขากำลังดาวน์โหลดเท่านั้น (พวกเขาควรปฏิเสธตามชื่อไฟล์หรือส่วนหัวเนื้อหาประเภทก่อนดาวน์โหลด) ฉันจะยอมรับคำตอบของพวกเขาอย่างมีความสุข!


5

สิ่งที่เกี่ยวกับการเพิ่มตัวเลือก:

--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"
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.