อรรถประโยชน์ wget ช่วยให้คุณสามารถดาวน์โหลดหน้าเว็บไฟล์และภาพจากเว็บโดยใช้บรรทัดคำสั่ง Linux
คุณสามารถใช้คำสั่ง wget หนึ่งเดียวในตัวเองเพื่อดาวน์โหลดจากไซต์หรือตั้งค่าไฟล์อินพุตเพื่อดาวน์โหลดไฟล์หลายไฟล์ในหลายไซต์
ตาม wget ของหน้าคู่มือสามารถใช้งานได้แม้ในขณะที่ผู้ใช้ล็อกเอาต์ออกจากระบบ เมื่อต้องการทำเช่นนี้คุณจะใช้คำสั่ง nohup
ยูทิลิตี wget จะลองดาวน์โหลดอีกครั้งแม้จะมีการเชื่อมต่อลดลงเรื่อย ๆ จากตำแหน่งที่เหลือถ้าเป็นไปได้เมื่อการเชื่อมต่อส่งกลับ
คุณสามารถดาวน์โหลดทั้งเว็บไซต์โดยใช้ wget และแปลงลิงก์เพื่อชี้ไปยังแหล่งข้อมูลท้องถิ่นเพื่อให้คุณสามารถดูเว็บไซต์แบบออฟไลน์ได้
คุณลักษณะของ wget มีดังนี้:
- ดาวน์โหลดไฟล์โดยใช้ HTTP, HTTPS และ FTP
- ดาวน์โหลดงานต่อ
- แปลงลิงก์แบบสัมบูรณ์ในหน้าเว็บที่ดาวน์โหลดไปยัง URL สัมพัทธ์เพื่อให้สามารถดูเว็บไซต์ได้แบบออฟไลน์
- รองรับพร็อกซี HTTP และคุกกี้
- สนับสนุนการเชื่อมต่อ HTTP แบบต่อเนื่อง
- สามารถทำงานในพื้นหลังแม้ว่าคุณจะไม่ได้เข้าสู่ระบบ
- ทำงานบน Linux และ Windows
วิธีการดาวน์โหลดเว็บไซต์โดยใช้ 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 หรือไฟล์รูปภาพ
ด้วยเหตุนี้คุณจึงไม่ต้องการพิมพ์ข้อมูลต่อไปนี้ลงในไฟล์อินพุตเนื่องจากใช้เวลานาน:
- http://www.myfileserver.com/file1.zip
- http://www.myfileserver.com/file2.zip
- http://www.myfileserver.com/file3.zip
ถ้าคุณทราบว่า URL พื้นฐานเป็นไปในลักษณะเดียวกันคุณสามารถระบุข้อมูลต่อไปนี้ในไฟล์ที่ป้อนได้:
- file1.zip
- file2.zip
- file3.zip
จากนั้นคุณสามารถระบุ 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