เคยสงสัยไหมว่ามีวิธีดาวน์โหลดเว็บไซต์โดยไม่ใช้เว็บเบราว์เซอร์หรือไม่? คุณโชคดี ด้วยพลังของ Linux Command Line ทุกอย่างเป็นไปได้ มีหลายวิธีในการทำภารกิจนี้ แต่เราจะเน้นที่ wget ในบทความนี้
Wget คืออะไร?
wget เป็น GNU Command-line Utility สำหรับดึงเนื้อหาจาก Web Servers ในฐานะ Downloader wget ทรงพลังมากในตัวของมัน wget สามารถทำงานกับโปรโตคอลหลายอย่าง เช่น HTTP, HTTPS และ FTP ความสามารถอื่นๆ ของ wget Utility รวมถึง:
- ความสามารถในการรันเงียบหรือในพื้นหลัง
- รวมกับ Linux Scripts หรือ CRON Jobs
- สามารถรันการดาวน์โหลดหลายอย่างพร้อมกัน
- ดาวน์โหลดไฟล์ที่ต้องการรหัสผ่าน
ทำไมต้อง wget?
แม้จะมีเครื่องมือมากมายที่สามารถทำกิจกรรมเว็บไซต์ได้ wget อนุญาตให้มีขอบเขตกว้าง มันให้ผู้ใช้ความสามารถในการทำงานโดยไม่ต้องใช้เว็บเบราว์เซอร์โดย:
- ดาวน์โหลดสำเนาเต็มรูปแบบของเว็บไซต์
- ดาวน์โหลดไฟล์เฉพาะจากเว็บไซต์
- ทำให้การดึงไฟล์ตามความต้องการเป็นอัตโนมัติ
- ได้รับเอกสารจากพอร์ทัลการตรวจสอบสิทธิ์
wget ยัง Built-in ใน Linux Distros ส่วนใหญ่ ดังนั้นพร้อมใช้งานตั้งแต่เริ่มต้น และไม่ต้องการการติดตั้งเพิ่มเติม
พื้นฐานของ wget
การเริ่มต้นกับ wget ค่อนข้างง่าย ก่อนอื่น เปิด Linux Terminal
เมื่อหน้าต่าง Terminal เปิดแล้ว คุณสามารถรัน wget ตามที่แสดงด้านล่าง:
wget URL
แทนที่ "URL" ด้วย URL ที่แน่นอนของเว็บไซต์

เพื่อ Resume ไฟล์ที่ดาวน์โหลดไม่เสร็จ ให้ใช้ Switch -c ในคำสั่งของคุณดังนี้:
wget -c URL
เพื่อทำให้ wget ดาวน์โหลดเงียบ ให้เพิ่ม Switch -q ไปยังคำสั่ง wget เริ่มต้นของคุณ:
wget -q URL
หากคุณไม่แน่ใจเกี่ยวกับการใช้ Options ภายใน wget อย่างถูกต้อง ให้ใช้:
wget --help
นอกจากเว็บไซต์แล้ว คุณยังสามารถดาวน์โหลดไฟล์โดยใช้ wget ได้ ตัวอย่างเช่น:
wget https://example.com/file.zip
มันจะดึงไฟล์และบันทึกลงใน Current Directory
หากคุณต้องการบันทึกด้วยชื่อไฟล์ที่แตกต่างหรือตำแหน่งที่แตกต่าง ให้ใช้ Flag -O
wget https://example.com/file.zip -O ~/Documents/my_downloaded_file.zip
ตัวเลือก FTP
ตามที่ระบุไว้ก่อนหน้า wget รองรับ FTP ด้วย หากคุณระบุแค่ FTP Site:
wget ftp://ftp.example.com
wget จะสมมติว่าคุณต้องการ Anonymous Login ทางเลือกอื่น คุณสามารถระบุสิ่งต่างๆ เช่น Username และ Password ด้วย Flag ต่อไปนี้ด้วยตนเอง:
--ftp-user=USER: ระบุ Username สำหรับ Login--ftp-password=PASS: ระบุ Password--no-passive-ftp: ปิดโหมด Passive Transfer
Timeouts, Retries และ Failed Downloads
สุดท้าย wget มาพร้อมตัวเลือกหลายอย่างที่เกี่ยวข้องกับปัญหาการเชื่อมต่อ Server และ Timeouts ไม่ใช่ทุกความล้มเหลวที่สามารถจัดการได้ ทั้งหมด Flag ต่อไปนี้มีเจตนาช่วยจัดการกับปัญหา Server:
--tries=NUMBER: ระบุจำนวนครั้งที่จะลองดาวน์โหลดใหม่--retry-connrefused: ลองดาวน์โหลดใหม่แม้การเชื่อมต่อจะถูกปฏิเสธโดย Server--timeout=SECONDS: การตั้งค่าทั่วไป - รอนานแค่ไหนก่อน Timeout--wait=SECONDS: รอนานแค่ไหนระหว่างการดาวน์โหลดที่สำเร็จ (หากทำซ้ำ)
ใครจะใช้ wget?
ในการอ่านโพสต์นี้ คุณอาจคิดว่า "สิ่งนี้ดูซับซ้อนและยากกว่าการใช้เว็บเบราว์เซอร์มาก" แต่ใครก็สามารถพบประโยชน์จาก Utility นี้ได้ ไม่ว่าจะเป็น Systems Admin หรือ Programmer ด้านล่างเป็นตัวอย่าง 2 อย่างของวิธีที่ผมใช้คำสั่งนี้ตลอดวันของผม โดยบทบาทของผมเปลี่ยนไปบ้าง
มันทำให้งานของผมในฐานะ Security Researcher ง่ายขึ้น เพราะผมสามารถ Schedule คำสั่งนี้ให้ดาวน์โหลดหลายเว็บไซต์พร้อมกัน ผมทำได้โดยการสร้าง Text File (ใช้ Text Editor ใดๆ) ที่มี URLs หลายตัวในรายการ (หนึ่ง URL ต่อบรรทัด) โดยการ Execute คำสั่งด้านล่างด้วย Switch -i wget จะดาวน์โหลดแต่ละเว็บไซต์ในรายการ
wget -i download_file_name URL
ในฐานะ Systems Administrator ผมสามารถรับเอกสารจากตำแหน่งที่ป้องกันด้วยรหัสผ่านได้อย่างง่ายดาย สิ่งนี้อาจไม่ช่วยคุณได้มากนักออฟไลน์ แต่การรัน wget อนุญาตให้คุณเพิ่ม Credentials ให้กับเว็บไซต์
wget --user=user_id --password=user_password URL
นี่คือสิ่งที่คุณมี! มันยากอย่างที่คุณคิดไหม? การทำให้การกระทำของคุณเป็นอัตโนมัติด้วย wget จะประหยัดเวลาและให้คุณความสามารถในการทำงานออฟไลน์ คุณมีอะไรที่จะเสีย?
ทิ้งความคิดเห็นด้านล่างและบอกเราว่าคุณพบว่านี้มีประโยชน์หรือไม่