Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ระบบ >> Mac

วิธีติดตั้งและใช้ wget บน Mac

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

wget คืออะไร (และใช้ทำอะไร)?

สำหรับผู้ที่ไม่รู้จัก wget เป็นยูทิลิตี้บรรทัดคำสั่ง (command-line utility) โอเพนซอร์ส ไม่โต้ตอบ (non-interactive) ที่ช่วยให้คุณดาวน์โหลดทรัพยากรจาก URL ที่ระบุ ด้วยเพราะมันเป็น non-interactive wget จึงสามารถทำงานในพื้นหลัง (background) หรือแม้ก่อนที่คุณจะล็อกอินได้

มันเป็นโปรเจกต์ของทีม GNU และมันยอดเยี่ยมหากคุณมีการเชื่อมต่ออินเทอร์เน็ตที่แย่ หมายความว่ามันทนทาน (robust) ในเงื่อนไขที่ไม่เหมาะสมในทางอื่น

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

วิธีติดตั้ง wget บน Mac

ก่อนที่คุณจะติดตั้ง wget คุณต้องมี package manager แม้ wget จะไม่ได้มาพร้อมกับ macOS คุณสามารถดาวน์โหลดและติดตั้งมันได้โดยใช้ Homebrew – package manager ที่ดีที่สุดสำหรับ 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

ตัวติดตั้งจะให้การอัปเดตความคืบหน้าแบบสด (live progress updates) และมีอะไรให้คุณทำน้อยมาก กระบวนการตรงไปตรงมาและอัตโนมัติ แม้ว่า หากคุณมี Homebrew ติดตั้งอยู่แล้ว ตรวจสอบให้แน่ใจว่าเรียก brew update เพื่อรับสำเนาล่าสุดของ formulae ทั้งหมดของคุณ

เมื่อคุณเห็น prompt ใหม่ภายใน Terminal ของคุณ คุณพร้อมที่จะใช้ wget บน Mac เพื่อดาวน์โหลดทรัพยากร

วิธีใช้ wget ดาวน์โหลดทรัพยากรจากเว็บ

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

wget -O path/to/local.copy https://example.com/url/to/download.html

สิ่งนี้จะบันทึกไฟล์ที่ระบุใน URL ไปยังตำแหน่งที่ระบุบนเครื่องของคุณ

หากคุณเว้น flag -O ออก ตำแหน่งดาวน์โหลดจะเป็น current working directory

ตัวอย่างเช่น เราต้องการดาวน์โหลดหน้าเว็บไปที่โฟลเดอร์ Downloads:

wget -O /Users/[your-username]/Downloads/status.html https://www.w3.org/Status.html

อย่างไรก็ตาม เพื่อทำอย่างเดียวกันโดยไม่มี flag -O เราจะต้องเปลี่ยน directory (cd downloads) ก่อนที่เราจะรัน wget:

wget /Users/[your-username]/Downloads/status.html https://www.w3.org/Status.html

คุณจะได้รายละเอียดเต็มเกี่ยวกับความคืบหน้าการดาวน์โหลด แม้ด้วยความเร็วของ wget ข้อมูลนี้คล้ายกับสรุปการดาวน์โหลดมากกว่าการอัปเดตแบบ real-time

วิธีดาวน์โหลดไดเรกทอรีแบบ Recursive (ซ้อน)

เพื่อดาวน์โหลดโครงสร้างไดเรกทอรีทั้งหมดด้วย wget คุณต้องใช้ flag -r/--recursive และ -np/--no-parent:

wget -e robots=off -r -np https://www.w3.org/History/19921103-hypertext/hypertext/

สิ่งนี้จะทำให้ wget ตามลิงก์ที่พบบนเอกสารภายในไดเรกทอรีที่ระบุ จากนั้นจะดาวน์โหลดแบบ recursive ทั้งเส้นทาง URL ที่ระบุ

สังเกตคำสั่ง -e robots=off นี้เพิกเฉยต่อข้อจำกัดในไฟล์ robots.txt โดยทั่วไป มันเป็นความคิดที่ดีที่จะปิด robots.txt เพื่อป้องกันการดาวน์โหลดที่ไม่สมบูรณ์

การใช้ Flag เพิ่มเติมกับ wget

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

มาเองดูสองพื้นที่ในโฟกัสของเราเกี่ยวกับการควบคุมกระบวนการดาวน์โหลดและการสร้าง logs

ควบคุมวิธีที่ wget จะดาวน์โหลดทรัพยากร

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

  • wget -X /absolute/path/to/directory จะ exclude ไดเรกทอรีเฉพาะบนเซิร์ฟเวอร์ระยะไกล
  • wget -nH ลบไดเรกทอรี "hostname" กล่าวคือ ข้ามโดเมนหลัก ตัวอย่างเช่น wget จะข้ามโฟลเดอร์ www.w3.org ในตัวอย่างก่อนหน้า และเริ่มที่ไดเรกทอรี History แทน
  • wget --cut-dirs=# ข้ามจำนวนไดเรกทอรีที่ระบุลงใน URL ก่อนเริ่มดาวน์โหลดไฟล์ ตัวอย่างเช่น -nH --cut-dirs=1 จะเปลี่ยนเส้นทางที่ระบุ "ftp.xemacs.org/pub/xemacs/" เป็นเพียง "/xemacs/" และลดจำนวน parent directories ว่างในการดาวน์โหลดในเครื่อง
  • wget -R index.html/wget --reject index.html จะข้ามไฟล์ที่ตรงกับชื่อไฟล์ที่ระบุ ในกรณีนี้ จะ exclude ไฟล์ index ทั้งหมด asterisk (*) เป็น wildcard เช่น "*.png" จะข้ามไฟล์ทุกไฟล์ที่มีนามสกุล PNG
  • wget -i file ระบุ target URLs จากไฟล์อินพุต ไฟล์อินพุตนี้ต้องเป็นในรูปแบบ HTML หรือคุณจะต้องใช้ flag --force-html เพื่อ parse HTML
  • wget -nc/wget --no-clobber จะไม่ overwrite ไฟล์ที่มีอยู่ในปลายทางแล้ว
  • wget -c/wget --continue จะดำเนินการดาวน์โหลดไฟล์ที่ดาวน์โหลดบางส่วนต่อ
  • wget -t 10 จะพยายามดาวน์โหลดทรัพยากรสูงสุด 10 ครั้งก่อนจะล้มเหลว

wget ทำได้มากกว่าการควบคุมกระบวนการดาวน์โหลด คุณยังสามารถสร้าง logs สำหรับการอ้างอิงในอนาคตได้

ปรับระดับ Logging

คุณยังสามารถพิจารณา flag ต่อไปนี้เป็นวิธีบางส่วนในการควบคุมเอาต์พุตที่คุณได้รับเมื่อใช้ wget

  • wget -d เปิดใช้งาน debugging output
  • wget -o path/to/log.txt เปิดใช้งาน logging output ไปยังไดเรกทอรีที่ระบุ แทนที่จะแสดง log ใน standard output
  • wget -q ปิดเอาต์พุตทั้งหมดของ wget รวมถึงข้อความข้อผิดพลาด
  • wget -v เปิดใช้งาน verbose output เริ่มต้นของ wget อย่างชัดเจน
  • wget --no-verbose ปิด log messages แต่แสดง error messages

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

สรุป

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

หากคุณพบว่า wget ไม่ทำงานให้คุณ อาจถึงเวลาวินิจฉัยปัญหาการเชื่อมต่อ Wi-Fi ของคุณ คุณจะใช้ wget บน Mac เพื่อดาวน์โหลดทรัพยากรเว็บไหม? แชร์ความคิดเห็นในส่วนความคิดเห็นด้านล่าง!