คุณสามารถดาวน์โหลดแหล่งข้อมูลจากเว็บได้หลายวิธี นอกจากเบราว์เซอร์ของคุณแล้ว คุณยังสามารถใช้เครื่องมืออย่างเช่น wget เพื่อดาวน์โหลดแหล่งข้อมูลจากเว็บในขณะที่คุณทำอย่างอื่นได้อีกด้วย ในบทความนี้ เราจะแสดงวิธีดาวน์โหลดและใช้งาน wget บน Mac
wget คืออะไร (และใช้สำหรับอะไร)
สำหรับผู้ที่ไม่รู้ตัว wget เป็นยูทิลิตีบรรทัดคำสั่งแบบโอเพนซอร์สที่ไม่โต้ตอบเพื่อช่วยคุณดาวน์โหลดทรัพยากรจาก URL ที่ระบุ เนื่องจากไม่มีการโต้ตอบ wget สามารถทำงานในพื้นหลังหรือก่อนที่คุณจะเข้าสู่ระบบ
เป็นโครงการโดยทีมงาน GNU และเป็นเรื่องที่ดีถ้าคุณมีการเชื่อมต่ออินเทอร์เน็ตที่ไม่ดี ซึ่งหมายความว่ามีความแข็งแกร่งแม้ในสภาวะที่ไม่เหมาะสม
เมื่อคุณติดตั้ง wget คุณจะเรียกใช้คำสั่งและระบุปลายทางสำหรับไฟล์ของคุณ เราจะแสดงให้คุณเห็นว่าต้องทำอย่างไรต่อไป
วิธีการติดตั้ง wget บน Mac
ก่อนที่คุณจะติดตั้ง wget คุณต้องมีตัวจัดการแพ็คเกจ แม้ว่า wget จะไม่ได้มาพร้อมกับ macOS คุณสามารถดาวน์โหลดและติดตั้งโดยใช้ Homebrew ซึ่งเป็นตัวจัดการแพ็คเกจ Mac ที่ดีที่สุด
1. ดาวน์โหลดและติดตั้ง Homebrew
ในการติดตั้ง Homebrew ก่อนอื่นให้เปิดหน้าต่าง Terminal และรันคำสั่งต่อไปนี้:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
สิ่งนี้ใช้ curl
คำสั่งดาวน์โหลดไฟล์ที่มาพร้อมกับการติดตั้ง Ruby ที่ติดตั้งไว้ล่วงหน้าบน macOS
เมื่อคุณกด Enter เพื่อเรียกใช้คำสั่ง โปรแกรมติดตั้งจะให้รายละเอียดที่ชัดเจนเกี่ยวกับสิ่งที่จะเกิดขึ้น
หลังจากที่คุณยืนยัน โปรแกรมติดตั้งจะทำงาน
2. ติดตั้ง wget จากบรรทัดคำสั่ง
ต่อไปเราต้องการใช้ Homebrew เพื่อติดตั้ง wget จาก Terminal อีกครั้ง ให้รัน:
brew install wget
โปรแกรมติดตั้งจะให้การอัปเดตความคืบหน้าแบบสดแก่คุณ และคุณไม่ต้องดำเนินการใดๆ เลยที่นี่ กระบวนการนี้ตรงไปตรงมาและเป็นไปโดยอัตโนมัติ แม้ว่าหากคุณติดตั้ง Homebrew แล้ว อย่าลืมเรียกใช้ brew update
เพื่อรับสำเนาล่าสุดของสูตรทั้งหมดของคุณ
เมื่อคุณเห็นข้อความแจ้งใหม่ภายใน Terminal คุณก็พร้อมที่จะใช้ wget บน Mac เพื่อดาวน์โหลดทรัพยากร
วิธีใช้ wget เพื่อดาวน์โหลดทรัพยากรบนเว็บ
ในการดาวน์โหลดทรัพยากรระยะไกลจาก URL โดยใช้ wget คุณจะต้องใช้โครงสร้างต่อไปนี้:
wget -O path/to/local.copy https://example.com/url/to/download.html
ที่จะบันทึกไฟล์ที่ระบุใน URL ไปยังตำแหน่งที่ระบุในเครื่องของคุณ
หากคุณยกเว้น -O
“แฟล็ก” ตำแหน่งดาวน์โหลดของคุณจะเป็นไดเร็กทอรีการทำงานปัจจุบัน
ตัวอย่างเช่น เราต้องการดาวน์โหลดหน้าเว็บไปยังโฟลเดอร์ Downloads:
wget -O /Users/[your-username]/Downloads/status.html https://www.w3.org/Status.html
แม้ว่าจะทำเช่นเดียวกันโดยไม่มี -O
ตั้งค่าสถานะ เราจำเป็นต้องเปลี่ยนไดเร็กทอรี (cd downloads
) ก่อนที่เราจะเรียกใช้ wget:
wget /Users/[your-username]/Downloads/status.html https://www.w3.org/Status.html
คุณจะได้รับรายละเอียดทั้งหมดเกี่ยวกับความคืบหน้าในการดาวน์โหลด แม้ว่า wget จะรวดเร็วเพียงใด ข้อมูลนี้จะคล้ายกับสรุปการดาวน์โหลดมากกว่าการอัปเดตตามเวลาจริง
วิธีการดาวน์โหลด Recursive Directory
ในการดาวน์โหลดโครงสร้างไดเรกทอรีทั้งหมดด้วย wget คุณต้องใช้ -r
/--recursive
และ -np
/--no-parent
ธง:
wget -e robots=off -r -np https://www.w3.org/History/19921103-hypertext/hypertext/
ซึ่งจะทำให้ wget ติดตามลิงก์ที่พบในเอกสารภายในไดเร็กทอรีที่ระบุ จากนั้นจะทำการดาวน์โหลดซ้ำของเส้นทาง URL ที่ระบุทั้งหมด
นอกจากนี้ ให้สังเกต -e robots=off
สั่งการ. การดำเนินการนี้จะข้ามข้อจำกัดในไฟล์ robots.txt โดยทั่วไป เป็นความคิดที่ดีที่จะปิดการใช้งาน robots.txt เพื่อป้องกันการดาวน์โหลดแบบย่อ
การใช้แฟล็กเพิ่มเติมกับ wget
คุณจะพบว่า wget เป็นเครื่องมือที่ยืดหยุ่น เนื่องจากใช้แฟล็กเพิ่มเติมอื่นๆ จำนวนหนึ่ง นี่เป็นสิ่งที่ดีถ้าคุณมีข้อกำหนดเฉพาะสำหรับการดาวน์โหลดของคุณ
มาดูสองประเด็นที่เรามุ่งเน้นในการควบคุมกระบวนการดาวน์โหลดและการสร้างบันทึก
ควบคุมว่า wget จะดาวน์โหลดทรัพยากรอย่างไร
มีแฟล็กมากมายที่จะช่วยคุณตั้งค่ากระบวนการดาวน์โหลด นี่เป็นเพียงตัวอย่างบางส่วนที่มีประโยชน์มากที่สุด:
wget -X /absolute/path/to/directory
จะไม่รวมไดเรกทอรีเฉพาะบนเซิร์ฟเวอร์ระยะไกลwget -nH
ลบไดเร็กทอรี "ชื่อโฮสต์" กล่าวคือข้ามชื่อโดเมนหลัก ตัวอย่างเช่น wget จะข้ามwww.w3.org
ในตัวอย่างที่แล้วและเริ่มต้นด้วยHistory
ไดเรกทอรีแทนwget --cut-dirs=#
ข้ามจำนวนไดเร็กทอรีที่ระบุลง URL ก่อนเริ่มดาวน์โหลดไฟล์ ตัวอย่างเช่น-nH --cut-dirs=1
จะเปลี่ยนเส้นทางที่ระบุของ “ftp.xemacs.org/pub/xemacs/” เป็น “/xemacs/” อย่างง่าย และลดจำนวนไดเรกทอรีหลักที่ว่างในการดาวน์โหลดในเครื่องwget -R index.html
/wget --reject index.html
จะข้ามไฟล์ใดๆ ที่ตรงกับชื่อไฟล์ที่ระบุ ในกรณีนี้ จะไม่รวมไฟล์ดัชนีทั้งหมด เครื่องหมายดอกจัน (*) คือสัญลักษณ์แทน เช่น “*.png” การดำเนินการนี้จะข้ามไฟล์ทั้งหมดที่มีนามสกุล PNGwget -i file
ระบุ URL เป้าหมายจากไฟล์อินพุต ไฟล์อินพุตนี้ต้องอยู่ในรูปแบบ HTML หรือคุณจะต้องใช้--force-html
ตั้งค่าสถานะเพื่อแยกวิเคราะห์ HTMLwget -nc
/wget --no-clobber
จะไม่เขียนทับไฟล์ที่มีอยู่แล้วในปลายทางwget -c
/wget --continue
จะดาวน์โหลดไฟล์ที่ดาวน์โหลดบางส่วนต่อwget -t 10
จะพยายามดาวน์โหลดทรัพยากรมากถึง 10 ครั้งก่อนที่จะล้มเหลว
wget ทำได้มากกว่าควบคุมกระบวนการดาวน์โหลด เนื่องจากคุณสามารถสร้างบันทึกเพื่อใช้อ้างอิงในอนาคตได้
ปรับระดับการบันทึก
คุณยังสามารถพิจารณาแฟล็กต่อไปนี้เป็นวิธีบางส่วนในการควบคุมเอาต์พุตที่คุณได้รับเมื่อใช้ wget
wget -d
เปิดใช้งานการดีบักเอาต์พุตwget -o path/to/log.txt
เปิดใช้งานการบันทึกเอาต์พุตไปยังไดเร็กทอรีที่ระบุแทนที่จะแสดงเอาต์พุตมาตรฐานการเข้าสู่ระบบwget -q
ปิดเอาต์พุตของ wget ทั้งหมด รวมถึงข้อความแสดงข้อผิดพลาดwget -v
เปิดใช้งานเอาต์พุตแบบละเอียดของ wget อย่างชัดเจนwget --no-verbose
ปิดข้อความบันทึก\esแต่แสดงข้อความแสดงข้อผิดพลาด
คุณมักจะต้องการทราบว่าเกิดอะไรขึ้นระหว่างการดาวน์โหลด ดังนั้นคุณจึงไม่สามารถใช้แฟล็กเหล่านี้มากเท่ากับอื่นๆ อย่างไรก็ตาม หากคุณมีไฟล์ดาวน์โหลดจำนวนมากและต้องการแน่ใจว่าสามารถแก้ไขปัญหาใดๆ ได้ การมีบันทึกหรือขาดเอาต์พุตเป็นแนวทางที่ถูกต้อง
บทสรุป
แม้ว่าคุณสามารถใช้เบราว์เซอร์หรือ GUI อื่นเพื่อดาวน์โหลดหน้าเว็บและทรัพยากรอื่นๆ ได้ แต่คุณสามารถประหยัดเวลาได้ด้วยบรรทัดคำสั่ง เครื่องมือเช่น wget นั้นทรงพลัง – มากกว่าเบราว์เซอร์ของคุณ – และว่องไวเช่นกัน สำหรับคำอธิบายแบบเต็มของความสามารถของ wget คุณสามารถดูหน้าคู่มือ GNU ของ wget ได้
หากคุณพบว่า wget ใช้งานไม่ได้ อาจถึงเวลาวินิจฉัยปัญหากับการเชื่อมต่อ Wi-Fi ของคุณ คุณจะใช้ wget บน Mac เพื่อดาวน์โหลดแหล่งข้อมูลบนเว็บหรือไม่ แบ่งปันความคิดของคุณในส่วนความคิดเห็นด้านล่าง!