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

วิธีใช้ Wget ดาวน์โหลดเว็บไซต์ทั้งหมดลงคอมพิวเตอร์

เคยสงสัยไหมว่ามีวิธีดาวน์โหลดเว็บไซต์โดยไม่ใช้เว็บเบราว์เซอร์หรือไม่? คุณโชคดี ด้วยพลังของ 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 ที่แน่นอนของเว็บไซต์

วิธีใช้ Wget ดาวน์โหลดเว็บไซต์ทั้งหมดลงคอมพิวเตอร์

เพื่อ 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 จะประหยัดเวลาและให้คุณความสามารถในการทำงานออฟไลน์ คุณมีอะไรที่จะเสีย?

ทิ้งความคิดเห็นด้านล่างและบอกเราว่าคุณพบว่านี้มีประโยชน์หรือไม่