วิธีการใช้คำสั่ง Linux wget เพื่อดาวน์โหลดหน้าเว็บและไฟล์

อรรถประโยชน์ wget ช่วยให้คุณสามารถดาวน์โหลดหน้าเว็บไฟล์และภาพจากเว็บโดยใช้บรรทัดคำสั่ง Linux

คุณสามารถใช้คำสั่ง wget หนึ่งเดียวในตัวเองเพื่อดาวน์โหลดจากไซต์หรือตั้งค่าไฟล์อินพุตเพื่อดาวน์โหลดไฟล์หลายไฟล์ในหลายไซต์

ตาม wget ของหน้าคู่มือสามารถใช้งานได้แม้ในขณะที่ผู้ใช้ล็อกเอาต์ออกจากระบบ เมื่อต้องการทำเช่นนี้คุณจะใช้คำสั่ง nohup

ยูทิลิตี wget จะลองดาวน์โหลดอีกครั้งแม้จะมีการเชื่อมต่อลดลงเรื่อย ๆ จากตำแหน่งที่เหลือถ้าเป็นไปได้เมื่อการเชื่อมต่อส่งกลับ

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

คุณลักษณะของ wget มีดังนี้:

วิธีการดาวน์โหลดเว็บไซต์โดยใช้ wget

สำหรับคู่มือนี้ฉันจะแสดงวิธีการดาวน์โหลดบล็อกส่วนตัวของฉัน

wget www.everydaylinuxuser.com

เป็นมูลค่าการสร้างโฟลเดอร์ของคุณเองในเครื่องของคุณโดยใช้ คำสั่ง mkdir แล้วย้ายไปที่โฟลเดอร์โดยใช้ คำสั่ง cd

ตัวอย่างเช่น:

mkdir everydaylinuxuser
cd dailylinuxuser
wget www.everydaylinuxuser.com

ผลลัพธ์คือไฟล์ index.html เดียว ไฟล์นี้ใช้ไม่ได้เลยเนื่องจากเนื้อหายังคงถูกดึงออกมาจาก Google และภาพและสเปรดชีตจะยังคงอยู่ใน Google

ในการดาวน์โหลดไซต์ทั้งหมดและหน้าทั้งหมดที่คุณสามารถใช้คำสั่งต่อไปนี้:

wget -r www.everydaylinuxuser.com

ซึ่งจะดาวน์โหลดหน้าเว็บซ้ำ ๆ ได้สูงสุด 5 ระดับ

5 ระดับลึกอาจไม่เพียงพอที่จะได้รับทุกอย่างจากไซต์ คุณสามารถใช้สวิตช์ -l เพื่อกำหนดจำนวนระดับที่ต้องการได้ดังนี้:

wget -r -l10 www.everydaylinuxuser.com

ถ้าคุณต้องการ recursion อนันต์คุณสามารถใช้ต่อไปนี้:

wget -r -l inf www.everydaylinuxuser.com

คุณสามารถแทนที่ inf ด้วย 0 ซึ่งหมายความว่าสิ่งเดียวกัน

ยังมีอีกหนึ่งปัญหา คุณอาจได้รับทุกหน้าในพื้นที่ แต่ลิงก์ทั้งหมดในหน้าเว็บยังคงชี้ไปยังที่เดิม ดังนั้นจึงไม่สามารถคลิกได้เฉพาะระหว่างลิงก์บนหน้าเว็บ

คุณสามารถแก้ปัญหานี้ได้โดยใช้สวิตช์ -k ซึ่งจะแปลงลิงก์ทั้งหมดบนหน้าเว็บเพื่อชี้ไปที่ค่าที่ดาวน์โหลดในเครื่องได้ดังนี้:

wget -r -k www.everydaylinuxuser.com

ถ้าคุณต้องการได้รับกระจกที่สมบูรณ์ของเว็บไซต์คุณสามารถใช้สวิตช์ต่อไปนี้ซึ่งจะนำความจำเป็นในการใช้สวิตช์ -r -k และ -l

wget -m www.everydaylinuxuser.com

ดังนั้นหากคุณมีเว็บไซต์ของคุณเองคุณสามารถสำรองข้อมูลทั้งหมดโดยใช้คำสั่งง่ายๆนี้

เรียกใช้ wget เป็นคำสั่งพื้นหลัง

คุณสามารถรับ wget ทำงานเป็นคำสั่งพื้นหลังเพื่อให้สามารถทำงานกับหน้าต่างเทอร์มินัลได้ในขณะที่ดาวน์โหลดไฟล์

เพียงใช้คำสั่งต่อไปนี้:

wget -b www.everydaylinuxuser.com

คุณสามารถรวมสวิทช์ได้อย่างแน่นอน เพื่อรันคำสั่ง wget ในพื้นหลังขณะที่สะท้อนไซต์ที่คุณจะใช้คำสั่งต่อไปนี้:

wget -b -m www.everydaylinuxuser.com

คุณสามารถลดความซับซ้อนได้ดังนี้:

wget -bm www.everydaylinuxuser.com

เข้าสู่ระบบ

ถ้าคุณใช้คำสั่ง wget ในแบ็กกราวด์คุณจะไม่เห็นข้อความปกติใด ๆ ที่ส่งไปยังหน้าจอ

คุณสามารถรับข้อความทั้งหมดที่ส่งไปยังล็อกไฟล์เพื่อให้คุณสามารถตรวจสอบความคืบหน้าได้ตลอดเวลาโดยใช้ คำสั่งหาง

เมื่อต้องการส่งข้อมูลจากคำสั่ง wget ไปยังแฟ้มบันทึกใช้คำสั่งต่อไปนี้:

wget -o / path / to / mylogfile www.everydaylinuxuser.com

สิ่งที่ตรงกันข้ามคือต้องไม่มีการบันทึกข้อมูลทั้งหมดและไม่มีการส่งออกไปยังหน้าจอ หากต้องการละเว้นผลลัพธ์ทั้งหมดให้ใช้คำสั่งต่อไปนี้:

wget -q www.everydaylinuxuser.com

ดาวน์โหลดจากหลายไซต์

คุณสามารถตั้งค่าไฟล์อินพุตเพื่อดาวน์โหลดได้จากหลายเว็บไซต์

เปิดไฟล์โดยใช้ตัว แก้ไขที่คุณชื่นชอบ หรือแม้แต่ คำสั่งแมว และเริ่มต้นการแสดงรายการไซต์หรือลิงก์ที่จะดาวน์โหลดจากบรรทัดของไฟล์

บันทึกไฟล์แล้วรันคำสั่ง wget ต่อไปนี้:

wget -i / path / ถึง / inputfile

นอกเหนือจากการสำรองเว็บไซต์ของคุณเองหรืออาจหาข้อมูลที่จะดาวน์โหลดเพื่ออ่านบนรถไฟก็ไม่น่าที่คุณจะต้องการดาวน์โหลดทั้งเว็บไซต์

คุณมีแนวโน้มที่จะดาวน์โหลด URL เดียวพร้อมรูปภาพหรือดาวน์โหลดไฟล์เช่นไฟล์ซิปไฟล์ ISO หรือไฟล์รูปภาพ

ด้วยเหตุนี้คุณจึงไม่ต้องการพิมพ์ข้อมูลต่อไปนี้ลงในไฟล์อินพุตเนื่องจากใช้เวลานาน:

ถ้าคุณทราบว่า URL พื้นฐานเป็นไปในลักษณะเดียวกันคุณสามารถระบุข้อมูลต่อไปนี้ในไฟล์ที่ป้อนได้:

จากนั้นคุณสามารถระบุ URL พื้นฐานเป็นส่วนหนึ่งของคำสั่ง wget ดังนี้:

wget -B http://www.myfileserver.com -i / path / to / inputfile

ตัวเลือกการลองใหม่

หากคุณได้ตั้งค่าคิวไฟล์เพื่อดาวน์โหลดภายในไฟล์ป้อนข้อมูลและปล่อยให้คอมพิวเตอร์ทำงานตลอดทั้งคืนเพื่อดาวน์โหลดไฟล์คุณจะรำคาญอย่างมากเมื่อคุณลงมาในตอนเช้าเพื่อหาว่าไฟล์ติดขัดอยู่ในไฟล์แรกและ กำลังลองอีกครั้งตลอดทั้งคืน

คุณสามารถระบุจำนวนครั้งโดยใช้สวิตช์ต่อไปนี้:

wget -t 10 -i / path / to / inputfile

คุณอาจต้องการใช้คำสั่งดังกล่าวร่วมกับสวิตช์ -T ซึ่งช่วยให้คุณสามารถระบุช่วงหมดเวลาเป็นวินาทีดังนี้:

wget -t 10 -T 10 -i / path / to / inputfile

คำสั่งดังกล่าวจะลองอีกครั้ง 10 ครั้งและจะพยายามเชื่อมต่อเป็นเวลา 10 วินาทีสำหรับแต่ละลิงก์ในไฟล์

นอกจากนี้ยังเป็นที่น่ารำคาญอย่างมากเมื่อคุณดาวน์โหลดไฟล์ 75% ของไฟล์ขนาด 4 กิกะไบต์บางส่วนในการเชื่อมต่อบรอดแบนด์ที่มีความเร็วต่ำเท่านั้นสำหรับการเชื่อมต่อของคุณเพื่อออก

คุณสามารถใช้ wget เพื่อลองใหม่จากตำแหน่งที่หยุดการดาวน์โหลดโดยใช้คำสั่งต่อไปนี้:

wget -c www.myfileserver.com/file1.zip

หากคุณกำลังตอกเซิร์ฟเวอร์โฮสต์อาจไม่ชอบมันมากเกินไปและอาจจะบล็อกหรือเพียงแค่ฆ่าคำขอของคุณ

คุณสามารถระบุช่วงเวลารอคอยซึ่งระบุระยะเวลาที่จะรอระหว่างการเรียกค้นแต่ละครั้งดังนี้:

wget -w 60 -i / เส้นทาง / ถึง / inputfile

คำสั่งดังกล่าวจะรอ 60 วินาทีระหว่างการดาวน์โหลดแต่ละครั้ง วิธีนี้มีประโยชน์หากคุณดาวน์โหลดไฟล์จำนวนมากจากแหล่งเดียว

เว็บโฮสต์บางแห่งอาจสังเกตความถี่และจะบล็อกคุณอยู่ดี คุณสามารถกำหนดช่วงเวลารอคอยแบบสุ่มเพื่อให้ดูเหมือนว่าคุณไม่ได้ใช้โปรแกรมดังนี้:

wget - รอสุ่มตัวอย่าง -i / path / to / inputfile

การป้องกันขีด จำกัด การดาวน์โหลด

ผู้ให้บริการอินเทอร์เน็ตจำนวนมากยังคงใช้ขีด จำกัด ในการดาวน์โหลดสำหรับการใช้บรอดแบนด์ของคุณโดยเฉพาะอย่างยิ่งหากคุณอาศัยอยู่นอกเมือง

คุณอาจต้องการเพิ่มโควต้าเพื่อไม่ให้คุณดาวน์โหลดขีด จำกัด การดาวน์โหลด คุณสามารถทำได้ในลักษณะต่อไปนี้:

wget -q 100m -i / path / to / inputfile

โปรดทราบว่าคำสั่ง -q จะไม่ทำงานกับไฟล์เดียว

ดังนั้นถ้าคุณดาวน์โหลดไฟล์ที่มีขนาด 2 กิกะไบท์โดยใช้ -q 1000m จะไม่หยุดดาวน์โหลดไฟล์

โควต้าใช้เฉพาะเมื่อมีการดาวน์โหลดแบบรีมาร์เก็ตติ้งจากไซต์หรือเมื่อใช้ไฟล์อินพุต

การรักษาความปลอดภัย

ไซต์บางแห่งกำหนดให้คุณต้องเข้าสู่ระบบเพื่อให้สามารถเข้าถึงเนื้อหาที่คุณต้องการดาวน์โหลดได้

คุณสามารถใช้สวิตช์ต่อไปนี้เพื่อระบุชื่อผู้ใช้และรหัสผ่าน

wget --user = yourusername --password = รหัสผ่านของคุณ

หมายเหตุในระบบผู้ใช้หลายคนถ้ามีคนเรียกใช้คำสั่ง ps พวกเขาจะสามารถเห็นชื่อผู้ใช้และรหัสผ่านของคุณได้

ตัวเลือกการดาวน์โหลดอื่น ๆ

โดยค่าเริ่มต้น -r สลับจะ recursively ดาวน์โหลดเนื้อหาและจะสร้างไดเรกทอรีตามที่ไป

คุณสามารถรับไฟล์ทั้งหมดเพื่อดาวน์โหลดไปยังโฟลเดอร์เดียวโดยใช้สวิตช์ต่อไปนี้:

wget -nd -r

สิ่งที่ตรงกันข้ามคือบังคับให้สร้างไดเรกทอรีที่สามารถทำได้โดยใช้คำสั่งต่อไปนี้:

wget -x -r

วิธีการดาวน์โหลดไฟล์บางประเภท

ถ้าคุณต้องการดาวน์โหลดซ้ำจากไซต์ แต่คุณต้องการดาวน์โหลดเฉพาะประเภทไฟล์เช่น mp3 หรือรูปภาพเช่น png คุณสามารถใช้ไวยากรณ์ต่อไปนี้:

wget -A "* .mp3" -r

สิ่งที่ตรงกันข้ามคือละเว้นไฟล์บางไฟล์ บางทีคุณอาจไม่ต้องการดาวน์โหลดไฟล์ปฏิบัติการ ในกรณีนี้คุณจะใช้ไวยากรณ์ต่อไปนี้:

wget -R "* .exe" -r

Cliget

มี add-on Firefox ที่เรียกว่า cliget คุณสามารถเพิ่มสิ่งนี้ลงใน Firefox ได้ดังต่อไปนี้

ไปที่ https://addons.mozilla.org/en-US/firefox/addon/cliget/ แล้วคลิกปุ่ม "เพิ่มใน Firefox"

คลิกปุ่มติดตั้งเมื่อปรากฏขึ้น คุณจะต้องรีสตาร์ท Firefox

หากต้องการใช้ cliget ไปที่หน้าหรือไฟล์ที่คุณต้องการดาวน์โหลดและคลิกขวา เมนูบริบทจะปรากฏขึ้นเรียกว่า cliget และจะมีตัวเลือกให้ "คัดลอกไป wget" และ "copy to curl"

คลิกที่ "คัดลอกไปที่ wget" และเปิดหน้าต่างเทอร์มินัลแล้วคลิกขวาและวาง คำสั่ง wget ที่เหมาะสมจะถูกวางลงในหน้าต่าง

โดยทั่วไปจะช่วยให้คุณประหยัดเวลาในการพิมพ์คำสั่งด้วยตัวเอง

สรุป

คำสั่ง wget เป็นตัวเลือกและสวิทช์จำนวนมาก

คุณควรอ่าน หน้าคู่มือ สำหรับ wget โดยพิมพ์ข้อมูลต่อไปนี้ลงในหน้าต่างเทอร์มินัล:

คน wget