การดาวน์โหลดข้อมูลด้วย curl

การประมวลผลข้อมูลบน Command Line

Susan Sun

Data Person

curl คืออะไร?

curl:

  • ย่อมาจาก Client for URLs
  • เป็นเครื่องมือ command line บน Unix
  • รับส่งข้อมูลกับเซิร์ฟเวอร์
  • ใช้ดาวน์โหลดข้อมูลจากเว็บไซต์ HTTP(S) และ FTP
การประมวลผลข้อมูลบน Command Line

ตรวจสอบการติดตั้ง curl

ตรวจสอบการติดตั้ง curl:

man curl

หากยังไม่ได้ติดตั้ง curl จะแสดงข้อความ:

curl command not found.

ดูวิธีติดตั้งแบบละเอียดได้ที่ https://curl.haxx.se/download.html.

การประมวลผลข้อมูลบน Command Line

การเรียกดูคู่มือ curl

หากติดตั้ง curl แล้ว คอนโซลจะแสดงผลดังนี้:

ภาพหน้าจอแสดงส่วนเริ่มต้นของคู่มือ curl ในหน้าต่าง Terminal สีเข้ม

การประมวลผลข้อมูลบน Command Line

การเรียกดูคู่มือ curl

กด Enter เพื่อเลื่อนหน้า

ภาพหน้าจอแสดงคู่มือ curl ที่เลื่อนลงบางส่วนในหน้าต่าง Terminal สีเข้ม

กด q เพื่อออก

การประมวลผลข้อมูลบน Command Line

ไวยากรณ์ของ curl

รูปแบบคำสั่ง curl พื้นฐาน:

curl [option flags] [URL]

ต้องระบุ URL เสมอ

curl รองรับ HTTP, HTTPS, FTP และ SFTP

ดูรายการ option ทั้งหมดได้ด้วย:

curl --help
การประมวลผลข้อมูลบน Command Line

การดาวน์โหลดไฟล์เดี่ยว

ตัวอย่าง:

ไฟล์เดี่ยวถูกจัดเก็บอยู่ที่:

https://websitename.com/datafilename.txt

ใช้ flag -O เพื่อบันทึกไฟล์โดยใช้ชื่อเดิม:

curl -O https://websitename.com/datafilename.txt

หากต้องการเปลี่ยนชื่อไฟล์ ใช้ -o ตัวพิมพ์เล็ก + ชื่อไฟล์ใหม่:

curl -o renameddatafilename.txt https://websitename.com/datafilename.txt
การประมวลผลข้อมูลบน Command Line

การดาวน์โหลดหลายไฟล์ด้วย Globbing Parser

ต่อจากตัวอย่างก่อนหน้า:

https://websitename.com/datafilename001.txt
https://websitename.com/datafilename002.txt
...
https://websitename.com/datafilename100.txt

การใช้ Globbing Parser

คำสั่งต่อไปนี้จะดาวน์โหลดไฟล์ทีละไฟล์ ตั้งแต่ datafilename001.txt จนถึง datafilename100.txt

curl -O https://websitename.com/datafilename[001-100].txt
การประมวลผลข้อมูลบน Command Line

การดาวน์โหลดหลายไฟล์ด้วย Globbing Parser

ต่อจากตัวอย่างก่อนหน้า:

https://websitename.com/datafilename001.txt
https://websitename.com/datafilename002.txt
...
https://websitename.com/datafilename100.txt

การใช้ Globbing Parser

ดาวน์โหลดทุก N ไฟล์ (เช่น datafilename010.txt, datafilename020.txt, ... datafilename100.txt)

curl -O https://websitename.com/datafilename[001-100:10].txt
การประมวลผลข้อมูลบน Command Line

การแก้ปัญหาเบื้องต้น

curl มี option flag ที่มีประโยชน์ 2 ตัวสำหรับกรณีที่การดาวน์โหลดหมดเวลา:

  • -L เปลี่ยนเส้นทาง HTTP URL หากเกิด error code 300

  • -C ดาวน์โหลดต่อจากจุดที่ค้างไว้ หากหมดเวลาก่อนเสร็จสมบูรณ์

รวมทุก option เข้าด้วยกัน:

curl -L -O -C https://websitename.com/datafilename[001-100].txt
  • Option flag ทั้งหมดต้องอยู่ก่อน URL
  • ลำดับของ flag ไม่สำคัญ (เช่น -L -C -O ก็ได้)
การประมวลผลข้อมูลบน Command Line

มาฝึกกันเถอะ!

การประมวลผลข้อมูลบน Command Line

Preparing Video For Download...