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

คำแนะนำทีละขั้นตอนนี้จะสอนคุณว่า cURL คืออะไร วิธีใช้คำสั่งต่างๆ วิธีใช้สำหรับ light web scraping และวิธีใช้ cURL กับพร็อกซีเซิร์ฟเวอร์ คู่มือนี้อาจซับซ้อนเล็กน้อย ดังนั้นให้แน่ใจว่าคุณมีความเข้าใจพื้นฐานว่าพร็อกซีคืออะไรก่อนที่จะเริ่มอ่าน การรู้พื้นฐานการขูดเว็บบางอย่างก็มีประโยชน์เช่นกัน

สารบัญ

CURL คืออะไร?

cURL ย่อมาจาก “client URL” เป็นเครื่องมือบรรทัดคำสั่งที่อำนวยความสะดวกในการถ่ายโอนข้อมูลผ่านอินเทอร์เน็ต ประกอบด้วยบรรทัดคำสั่ง curl.exe และไลบรารีข้ามแพลตฟอร์มที่เรียกว่า libcurlซึ่งช่วยให้สามารถแลกเปลี่ยนข้อมูลระหว่างเซิร์ฟเวอร์ได้

เข้ากันได้กับระบบปฏิบัติการสมัยใหม่ต่างๆ ที่ใช้โปรโตคอลอินเทอร์เน็ต cURL ทำงานบนอุปกรณ์ตั้งแต่แล็ปท็อปไปจนถึงรถยนต์ รองรับโปรโตคอลอินเทอร์เน็ตมากมาย เช่น:

  • ก.ค.ศ
  • ไฟล์
  • เอฟทีพี
  • เอฟทีพีเอส
  • โกเฟอร์
  • HTTP
  • HTTPS
  • IMAP
  • IMAPS
  • แอลดีเอพี
  • แอลดีเอพีเอส
  • มคต
  • ป๊อป3
  • ป๊อป3เอส
  • RTSP
  • เอสซีพี
  • เอสเอฟทีพี
  • ธุรกิจขนาดกลางและขนาดย่อม
  • เอสเอ็มบีเอส
  • SMTP
  • SMTPS
  • เทลเน็ต
  • ทีทีพี

ชุมชนจำนวนมากได้พัฒนาเครื่องมือต่างๆ สำหรับ cURL รวมถึง curl-loader ซึ่งเป็นเครื่องมือทดสอบประสิทธิภาพของซอฟต์แวร์โอเพ่นซอร์ส Linux Curl-loader สามารถจำลองพฤติกรรมการใช้งานของไคลเอ็นต์ FTP/FTPS และ HTTP/HTTPS จำนวนมาก กระบวนการโหลดเดอร์แบบม้วนเดียวสามารถรองรับไคลเอนต์เสมือนได้ 2,500 ถึง 100,000 เครื่อง โดยไคลเอนต์แต่ละเครื่องจะมีที่อยู่ IP ต้นทางที่ไม่ซ้ำกัน

ต้นกำเนิดของ cURL

ประวัติความเป็นมาของ cURL ย้อนกลับไปในทศวรรษ 1990 เมื่อเครื่องมือบรรทัดคำสั่งแพร่หลาย ในปี 1996 นักพัฒนาชาวสวีเดน ดาเนียล สเตนเบิร์ก เริ่มทำงานกับสคริปต์ห้องแชทผ่านอินเทอร์เน็ต (IRC) เพื่อแปลงสกุลเงินสำหรับผู้เข้าร่วมแชท สิ่งนี้ทำให้เขามีส่วนร่วมในเครื่องมือที่เรียกว่า httpget ซึ่งเป็นวิธี HTTP ยอดนิยมในการส่งข้อมูลผ่านเซิร์ฟเวอร์ การทดลองของ Stenberg ส่งผลให้ได้ httpget 0.1 ซึ่งประกอบด้วย "ไฟล์ C ไฟล์เดียวน้อยกว่า 300 บรรทัด"

หลายเดือนต่อมา โปรโตคอลการถ่ายโอนไฟล์ (FTP) เกิดขึ้น ส่งผลให้ Stenberg รวมการรองรับ FTP ไว้ในเครื่องมือของเขา และเปลี่ยนชื่อเป็น urlget 2.0 เมื่อวันที่ 30 มีนาคม พ.ศ. 2541 เขาได้เพิ่มการสนับสนุนการอัปโหลด FTP และเปลี่ยนชื่อเครื่องมืออีกครั้งเป็น cURL 3.0

แม้ว่า cURL จะมีศักยภาพสูง แต่ในตอนแรกกลับได้รับความสนใจเพียงเล็กน้อย ในปี 1998 หลังจากอัปเดตและเผยแพร่ใหม่ 15 ครั้ง cURL มีการดาวน์โหลดมากกว่า 300 ครั้งจากเว็บไซต์ของ Stenberg ต่อมาในปีนั้น Red Hat Linux ได้นำ cURL มาใช้ ตามมาด้วย Debian ในปี 1999 และ Mac OS X 10.1 ในเดือนสิงหาคม 2001 ตั้งแต่ปี 2001 cURL ได้กลายเป็นคุณสมบัติเริ่มต้นในซอฟต์แวร์ที่เชื่อมต่ออินเทอร์เน็ตได้เกือบทุกตัว รวมถึงอุปกรณ์ Windows 10, iOS และ Android Sony PS5, Nintendo Switch, Xbox และแม้แต่รถยนต์

ทำไมต้องใช้ cURL?

cURL เป็นตัวเลือกยอดนิยมในหมู่นักพัฒนาเนื่องจากความสามารถในการจัดการการดำเนินงานที่ซับซ้อนได้อย่างมีประสิทธิภาพ ความคล่องตัว ความสามารถในการเขียนสคริปต์ และไลบรารีที่รวมไว้ทำให้สามารถทำงานร่วมกับโปรแกรมอื่นๆ ได้อย่างราบรื่น โดยไม่จำเป็นต้องเขียนการแยกวิเคราะห์ HTTP และโค้ดเครือข่ายแบบกำหนดเอง

cURL มีมากมาย ประโยชน์, เช่น:

  1. ความสามารถในการทดสอบและแก้ไขจุดสิ้นสุด
  2. ข้อมูลเชิงลึกโดยละเอียดเกี่ยวกับข้อมูลที่ส่งและรับ
  3. การบันทึกข้อผิดพลาดที่ครอบคลุม
  4. รองรับโปรโตคอลที่หลากหลาย
  5. ความเข้ากันได้กับ http2, Metalink, gzip, การบีบอัดข้อมูลอัตโนมัติ และการเข้ารหัสเนื้อหา
  6. คุณสมบัติขั้นสูง เช่น การอัปโหลด FTP, คุกกี้, การตรวจสอบผู้ใช้, การสนับสนุนพร็อกซี, การเชื่อมต่อ SSL และอื่นๆ
  7. การสลับโปรโตคอลอัตโนมัติหากโปรโตคอลเริ่มต้นล้มเหลว
  8. ไวยากรณ์ URL ขึ้นอยู่กับโปรโตคอล
  9. ฟังก์ชั่นการจำกัดอัตรา
  10. ความสามารถในการระบุส่วนของ URL หรือหลาย URL โดยใช้วงเล็บ (เช่น https://google.{one, two, three}.com)
  11. ตัวเลือกเพื่อระบุจำนวน URL ใด ๆ ผ่านทางบรรทัดคำสั่ง

นอกจากนี้ นักพัฒนายังชื่นชมการตรวจสอบใบรับรอง SSL เริ่มต้นของ cURL และการสนับสนุน HTTPS เมื่อ cURL เชื่อมต่อกับเซิร์ฟเวอร์ผ่าน HTTPS ระบบจะได้รับใบรับรองของเซิร์ฟเวอร์และเปรียบเทียบกับใบรับรอง CA เพื่อให้มั่นใจถึงความถูกต้องของเซิร์ฟเวอร์ระยะไกล

วิธีการติดตั้ง cURL

มาสำรวจวิธีการติดตั้ง cURL บนคอมพิวเตอร์ของคุณกันดีกว่า

ระบบปฏิบัติการ macOS

ไม่จำเป็นต้องติดตั้ง cURL บน macOS เนื่องจากมีการรวมไว้ในระบบปฏิบัติการแล้ว คุณสามารถใช้มันได้ในแอปพลิเคชัน Terminal

หน้าต่าง

เริ่มต้นด้วย Windows 10 ระบบปฏิบัติการจะมีสำเนาของ cURL อย่างไรก็ตาม คำสั่ง cURL ทำหน้าที่เป็นนามแฝงสำหรับ PowerShell เรียกใช้-WebRequest สั่งการ. ด้วยเหตุนี้ การดำเนินการคำสั่ง cURL ในเทอร์มินัล Windows จะเริ่มต้นการเรียกใช้-คำขอในเบื้องหลัง หากต้องการใช้ cURL แทน ให้แทนที่ 'curl' ด้วย 'curl.exe' และ PowerShell จะเรียกใช้ cURL แทนที่จะเรียกใช้-Request

ตัวอย่างเช่น หากต้องการตรวจสอบเวอร์ชันปัจจุบันของ cURL ที่ติดตั้งบนเครื่อง Windows ของคุณ ให้ป้อนคำสั่งต่อไปนี้ในเทอร์มินัล:

curl.exe --version

ผลลัพธ์ควรมีลักษณะดังนี้:

curl 7.83.1 (Windows) libcurl/7.83.1 Schannel 

Release-Date: 2022-05-13 

Protocols: dict file ftp ftps http https imap imaps pop3 pop3s smtp smtps telnet tftp 

Features: AsynchDNS HSTS IPv6 Kerberos Largefile NTLM SPNEGO SSL SSPI UnixSockets

หากคุณต้องการเรียนรู้เพิ่มเติมเกี่ยวกับ cURL และ Windows เราขอแนะนำให้คุณดูวิดีโอนี้ คุณจะได้รับแจ้งว่า cURL คืออะไร วิธีรันบน windows และวิธีการเรียกใช้คำขอ API GET, POST, PUT, DELETE ด้วย cURL

ลินุกซ์

สำหรับผู้ใช้ Linux ขั้นตอนการติดตั้ง cURL จะแตกต่างกันไปขึ้นอยู่กับการกระจายเฉพาะของคุณ เวอร์ชันยอดนิยมอย่าง Ubuntu และ Fedora มาพร้อมกับ cURL ที่ติดตั้งไว้ล่วงหน้า ทำให้คุณสามารถใช้งานได้โดยตรงในเทอร์มินัล

สำหรับการแจกจ่ายที่ไม่รวม cURL ตามค่าเริ่มต้น คุณสามารถติดตั้งได้โดยใช้ตัวจัดการแพ็คเกจของการแจกจ่ายของคุณ ตัวอย่างเช่น บนระบบปฏิบัติการที่ใช้ Debian ให้ใช้คำสั่งต่อไปนี้เพื่อติดตั้ง cURL:

sudo apt-get install curl

วิธีใช้ cURL

ตรวจสอบให้แน่ใจว่าติดตั้ง cURL บนอุปกรณ์ของคุณแล้ว ก่อนที่จะใช้ cURL ตรวจสอบให้แน่ใจว่าได้ติดตั้งไว้ในระบบของคุณแล้ว ถ้าไม่เช่นนั้น ให้ดาวน์โหลดจากเว็บไซต์ cURL

A. ตรวจสอบการติดตั้ง cURL บนอุปกรณ์ของคุณ

หากต้องการตรวจสอบว่ามีการติดตั้ง cURL บนระบบของคุณหรือไม่ ให้ทำตามขั้นตอนเหล่านี้:

  1. บนพีซี Windows หรือ MacBook ให้เปิดอินเทอร์เฟซบรรทัดคำสั่งหรือเทอร์มินัล PowerShell
  2. พิมพ์ 'curl --version'
  3. กดปุ่มตกลง.

หากติดตั้ง cURL บนอุปกรณ์ของคุณ คุณจะได้รับข้อความที่คล้ายกับข้อความนี้:

curl --version 

curl 7.55.1 (Windows) libcurl/7.55.1 WinSSL 

Release-Date: 2017-11-14, security patched: 2020-11-05 

Protocols: dict file ftp ftps http https imap imaps pop3 pop3s smtp smtps telnet tftp 

Features: AsynchDNS IPv6 Largefile SSPI Kerberos SPNEGO NTLM SSL

หรือ

curl --version 

curl 7.31.0 (x86_64-apple-darwin12.4.0) libcurl/7.31.0 OpenSSL/0.9.8x zlib/1.2.5 

Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp smtp smtps telnet tftp 

Features: IPv6 Largefile NTLM NTLM_WB SSL libz

หากคุณเห็นข้อความอื่น แสดงว่าไม่ได้ติดตั้ง cURL บนอุปกรณ์ของคุณ และคุณจำเป็นต้องติดตั้ง

B. กำหนดไวยากรณ์ cURL ที่เหมาะสมที่จะใช้

ตามค่าเริ่มต้น cURL จะใช้โปรโตคอล HTTP โดยมีไวยากรณ์ต่อไปนี้: cURL [ตัวเลือก] [URL]

เนื่องจาก cURL รองรับหลายโปรโตคอล ไวยากรณ์อาจแตกต่างกันเล็กน้อยสำหรับแต่ละโปรโตคอล ต่อไปนี้เป็นตัวอย่างคำสั่ง cURL สำหรับโปรโตคอลเครือข่ายต่างๆ:

  • โปรโตคอลการถ่ายโอนไฟล์ (FTP): cURL -T “ไฟล์ที่เลือก” “ftp://[ปลายทางเป้าหมาย]”
  • Simple Mail Transfer Protocol (SMTP): cURL smtp://[smtp-server] –mail-from [ผู้ส่ง] –mail-rcpt [ผู้รับ] –upload-file [mail-content-file]
  • โปรโตคอลเครือข่ายพจนานุกรม [DICT]: cURL “dict://dict.org/d:hi”

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

C. ใช้ไวยากรณ์ cURL ที่เหมาะสมสำหรับวัตถุประสงค์ของคุณ

cURL ช่วยให้คุณทำงานต่างๆ ได้ เช่น การดาวน์โหลดและอัพโหลดไฟล์หรือจัดการการตรวจสอบสิทธิ์ผู้ใช้ แต่ละงานต้องใช้ไวยากรณ์ cURL ที่แตกต่างกัน โดยมีสาเหตุหลักมาจากพารามิเตอร์เฉพาะและโปรโตคอลเครือข่ายที่เกี่ยวข้อง

ต่อไปนี้เป็นงานทั่วไปบางส่วนและคำสั่ง cURL ที่เกี่ยวข้อง:

  1. หากต้องการดาวน์โหลดไฟล์: curl -o [ชื่อไฟล์] [URL]
  2. หากต้องการอัปโหลดไฟล์โดยใช้โปรโตคอล FTP: curl -u [ชื่อผู้ใช้: รหัสผ่าน] -T [local-file-path] ftp: // [URL]
  3. หากต้องการขอส่วนหัว HTTP: ขด -I [URL]

วิธีใช้ cURL สำหรับการขูดแบบแสง

สามารถใช้ cURL สำหรับการขูดเว็บแบบเบาร่วมกับภาษาการเขียนโปรแกรมเช่น PHP

ก่อนที่จะเริ่มการคัดลอก ตรวจสอบให้แน่ใจว่าคุณได้ตรวจสอบไฟล์ robots.txt ของเว็บไซต์เป้าหมาย ปฏิบัติตามกฎเกณฑ์ แม้ว่าจะดูไร้เหตุผลก็ตาม เนื่องจากเจ้าของเว็บไซต์มีสิทธิ์กำหนดพารามิเตอร์และข้อจำกัดต่างๆ การปฏิบัติตามไฟล์ robots.txt เมื่อการรวบรวมข้อมูลเว็บถือเป็นแนวทางปฏิบัติมาตรฐาน และการไม่ปฏิบัติตามข้อกำหนดอาจส่งผลให้เกิดปัญหาทางกฎหมาย

ด้วยเหตุนี้ ต่อไปนี้เป็นคำแนะนำเกี่ยวกับการใช้ cURL สำหรับการขูดเว็บแบบเบา

หากต้องการเริ่มต้นการขูด ให้ทำตามขั้นตอนเหล่านี้:

  1. เลือกภาษาการเขียนโปรแกรมสำหรับการคัดลอก เช่น PHP บทช่วยสอนนี้จะใช้ PHP
  2. สร้างไฟล์ PHP ใหม่
  3. เริ่มต้นการจัดการ cURL โดยใช้ curl_init $curl = curl_init
  4. ตั้งค่า CURLOPT_RETURNTRANSFER เป็น TRUE ซึ่งจะส่งคืนเพจการโอนเป็นสตริง คำสั่งนี้บอกให้ cURL เก็บหน้าที่คัดลอกมาเป็นตัวแปร แทนที่จะแสดงทั้งหน้าตามค่าเริ่มต้น: curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
  5. เริ่มต้นคำขอและดำเนินการตรวจสอบข้อผิดพลาด: $page = curl_exec($curl); if(curl_errno($curl)) // check for execution errors { echo 'Scraper error: ' . curl_error($curl); exit; }
  6. ปิดการเชื่อมต่อ: curl_close($curl);

หากต้องการแยกเฉพาะบางส่วนของข้อมูล คุณจะต้องระบุสิ่งที่คุณต้องการแยกภายใต้ id=”case_textlist” ตามค่าเริ่มต้น cURL จะแยกทั้งหน้า:

$regex = '<div id="case_textlist">(.*?)</div>/s';

if (preg_match($regex, $page, $list)) echo $list[0]; else echo "Not found";

หากต้องการแยกวิเคราะห์เว็บไซต์โดยใช้พร็อกซีเซิร์ฟเวอร์ใน PHP คุณสามารถใช้ไลบรารี cURL นี่คือตัวอย่างสคริปต์ PHP ที่ดึงข้อมูลหน้าเว็บโดยใช้พร็อกซีเซิร์ฟเวอร์:

รหัส PHP:

<?php
// Set the URL to fetch
$url = "http://www.example.com";

// Set the proxy server and port
$proxy = "proxy.example.com:8080";

// Create a new cURL resource
$ch = curl_init();

// Set the cURL options
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_PROXY, $proxy);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

// Fetch the URL and output the response
$response = curl_exec($ch);
echo $response;

// Close the cURL resource
curl_close($ch);
?>

ในสคริปต์ข้างต้น คุณสามารถเปลี่ยนตัวแปร $url เป็น URL ของเว็บไซต์ที่คุณต้องการแยกวิเคราะห์ และเปลี่ยนตัวแปร $proxy เป็นที่อยู่และพอร์ตของพร็อกซีเซิร์ฟเวอร์ที่คุณต้องการใช้ ฟังก์ชัน curl_setopt() ใช้เพื่อตั้งค่าตัวเลือก cURL รวมถึง URL พร็อกซีเซิร์ฟเวอร์ และส่งคืนการตอบกลับเป็นสตริงแทนที่จะส่งออกโดยตรง สุดท้ายนี้ ฟังก์ชัน curl_exec() ใช้เพื่อดึงข้อมูล URL และการตอบสนองจะถูกส่งออกมาด้วยเสียงสะท้อน ฟังก์ชัน curl_close() ถูกเรียกเพื่อปิดทรัพยากร cURL

ในวิดีโอด้านล่าง คุณจะได้เรียนรู้วิธีสร้างพร็อกซีสเครปเปอร์โดยการโหลด URL ของเว็บไซต์ด้วย cURL และจับคู่กับนิพจน์ทั่วไป

วิธีใช้ cURL สำหรับการขูดขั้นสูง

ต่อไปนี้เป็นการกำหนดค่า cUrl ที่ได้รับการปรับปรุงซึ่งสามารถช่วยเพิ่มประสิทธิภาพเซสชันการขูดเว็บของคุณได้

หัวข้อย่อย: การรวมตัวแทนผู้ใช้

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

เพื่อหลีกเลี่ยงปัญหานี้ ให้รวม user-agent โดยใช้ตัวเลือก -A หรือ –user-agent ในตัวอย่างนี้ เราใช้ Firefox 65 บนตัวแทนผู้ใช้ Windows 10:

curl -x https://fineproxy.de/ -v -A "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:65.0) Gecko/20100101 Firefox/65.0"

หรือคุณสามารถส่งตัวแทนผู้ใช้ภายในส่วนหัวโดยใช้ตัวเลือก -H:

curl -x https://fineproxy.de/ -v -H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:65.0) Gecko/20100101 Firefox/65.0"

หัวข้อย่อย: การกำหนดค่าส่วนหัว

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

เพื่อให้บรรลุเป้าหมายนี้ คุณจะต้องส่งส่วนหัวที่เหมาะสมด้วย cURL

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

หลังจากนั้น กำหนดค่าส่วนหัวใน cUrl โดยใช้ตัวเลือก -H หรือ –header ตัวอย่างเช่น ต่อไปนี้คือวิธีที่คุณจะส่งส่วนหัว "ยอมรับ" ไปยังไซต์เป้าหมาย:

curl -x https://fineproxy.de/ -v -H "Accept: text/html"

วิธีใช้ cURL กับพร็อกซีเซิร์ฟเวอร์

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

ทำตามขั้นตอนเหล่านี้เพื่อใช้ cURL กับพร็อกซี:

1. ตั้งค่าพร็อกซีเซิร์ฟเวอร์

ขั้นแรก ตั้งค่าพร็อกซีของคุณตามคำแนะนำที่ได้รับจากผู้ให้บริการพร็อกซีของคุณ เพื่อตรวจสอบว่าพร็อกซีของคุณได้รับการตั้งค่าอย่างถูกต้อง ให้ป้อนคำสั่งต่อไปนี้ในเทอร์มินัลของคุณ:

curl https://httpbin.org/ip 

คำสั่งนี้จะส่งคืนที่อยู่ IP ของอุปกรณ์ของคุณ หากค่าตรงกับที่อยู่ IP ดั้งเดิมของอุปกรณ์ของคุณ แสดงว่าพร็อกซีเซิร์ฟเวอร์ของคุณตั้งค่าไม่ถูกต้อง หากไม่ตรงกัน แสดงว่าพร็อกซีเซิร์ฟเวอร์ของคุณได้รับการกำหนดค่าอย่างถูกต้อง

2. กำหนดค่าพร็อกซีของคุณให้ทำงานกับคำสั่ง cURL

มีสามวิธีในการกำหนดค่าพร็อกซีของคุณเพื่อใช้กับ cURL:

A. การใช้ไฟล์กำหนดค่า (.curlrc)

ไฟล์การกำหนดค่าคือไฟล์ข้อความที่มีการตั้งค่าที่คุณต้องการ ซึ่งบันทึกในรูปแบบไฟล์ .curlrc ในไดเร็กทอรีระบบของคุณ เพื่อให้เข้าถึงได้ง่ายเมื่อรันคำสั่ง cURL

ไฟล์การกำหนดค่าพร็อกซีประกอบด้วยข้อมูลในรูปแบบนี้:

proxy = "[protocol://][host][:port]"

คุณสามารถบันทึกการตั้งค่าการกำหนดค่าหลายรายการในไฟล์และเปิดใช้งานได้ตามต้องการ ก่อนที่จะรันคำสั่ง cURL ให้เปิดไฟล์ และคำสั่ง cURL ใดๆ ที่คุณดำเนินการจะใช้การตั้งค่าพร็อกซีจากไฟล์กำหนดค่า

การสร้างไฟล์การกำหนดค่าเป็นวิธีที่ดีที่สุดสำหรับผู้ที่ใช้ cURL ซ้ำๆ กับพร็อกซีและแยกข้อมูลจำนวนมาก ช่วยประหยัดเวลาโดยไม่จำเป็นต้องกำหนดค่าพร็อกซีสำหรับ cURL ทุกครั้ง

B. การใช้อาร์กิวเมนต์บรรทัดคำสั่ง

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

curl -x "[protocol://][host][:port]" [URL] [options]

เนื่องจากโปรโตคอลเริ่มต้นของ cURL คือ HTTP คุณต้องระบุรายละเอียดโปรโตคอลและพร็อกซีเซิร์ฟเวอร์ โดยเฉพาะอย่างยิ่งหากคุณใช้โปรโตคอลเครือข่ายอื่น

C. การใช้ตัวแปรสภาพแวดล้อม

วิธีที่สามเกี่ยวข้องกับการตั้งค่าตัวแปร http_proxy และ https_proxy หรือที่เรียกว่าตัวแปรสภาพแวดล้อม ซึ่งส่งผลต่อกระบวนการที่ทำงานในระดับระบบ คำสั่งเหล่านี้เป็นส่วนหนึ่งของระบบปฏิบัติการและสามารถแทนที่พารามิเตอร์อื่นๆ ได้

ไวยากรณ์สำหรับการตั้งค่าพร็อกซี cURL ผ่านตัวแปรสภาพแวดล้อมมีดังนี้:

export http_proxy="[protocol://][host][:port]" 

export https_proxy="[protocol://][host][:port]"

หลังจากรันคำสั่งเหล่านี้แล้ว คำสั่ง cURL ใดๆ ที่คุณดำเนินการจะส่งผ่านพร็อกซีเซิร์ฟเวอร์โดยอัตโนมัติ ตอนนี้เรามาพูดถึงวิธีนี้กันอีกสักหน่อย

การใช้ cURL ด้วยพร็อกซีผ่านตัวแปรสภาพแวดล้อม

ตัวแปรสภาพแวดล้อมคล้ายกับออบเจ็กต์ที่เก็บค่าที่แก้ไขได้ในหน่วยความจำที่โปรแกรมซอฟต์แวร์ตั้งแต่หนึ่งโปรแกรมขึ้นไปสามารถใช้ได้ ในกรณีนี้ เราสามารถส่งตัวแปรชื่อ http_proxy หรือ https_proxy ไปยัง cURL ซึ่งมีข้อมูลพร็อกซีของเรา และเราไม่จำเป็นต้องระบุทุกครั้งที่เรียกใช้คำสั่ง คุณสามารถทำได้โดยการรันคำสั่งนี้:

$ export http_proxy="http://fineproxy.proxy_type=datacenter.device=desktop:<YOUR-API-KEY>@proxy.fineproxy.de:80"

โปรดทราบว่าคุณต้องตั้งชื่อตัวแปรของคุณ http_proxy หรือ https_proxy เพื่อให้ cURL เข้าใจ แค่นั้นแหละ. คุณไม่จำเป็นต้องให้ข้อมูลประจำตัวของคุณทุกครั้งที่คุณเรียกใช้คำสั่งอีกต่อไป และตอนนี้คุณสามารถเรียกใช้ cURL ได้ง่ายๆ ดังนี้:

$ curl http://httpbin.org/get

สิ่งนี้จะให้ผลลัพธ์ต่อไปนี้แก่เรา:

{ "args": {}, "headers": { "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,/;q=0.8", "Accept-Encoding": "gzip, deflate, br", "Host": "httpbin.org", "Upgrade-Insecure-Requests": "1", "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36", "X-Amzn-Trace-Id": "Root=1-633bf912-66ace1104304ddaf5ea8ac65" }, "origin": "132.255.134.104", "url": "http://httpbin.org/get" }

อย่างที่คุณเห็น ที่อยู่ IP นั้นเป็นของพร็อกซี เพื่อยืนยันว่าคุณได้ตั้งค่าพร็อกซีของคุณได้อย่างยอดเยี่ยม ณ จุดนี้ เราสามารถเรียกใช้คำสั่ง cURL โดยไม่ต้องระบุข้อมูลพร็อกซี เนื่องจาก cURL จะจัดการให้เราเอง

7 เคล็ดลับและเคล็ดลับสำคัญ

ในส่วนนี้ เราจะนำเสนอเคล็ดลับที่น่าสนใจและเคล็ดลับอันล้ำค่าในการใช้พรอกซีด้วย cUrl ซึ่งปรับให้เหมาะกับความต้องการเฉพาะของคุณ

เคล็ดลับ 1: การตั้งค่าพรอกซีเฉพาะสำหรับ cUrl

หากต้องการกำหนดพร็อกซีสำหรับงานที่ใช้ cUrl เท่านั้น ให้ใช้ลำดับคำสั่งต่อไปนี้:

  1. cd ~ $ nano .curlrc
  2. เพิ่มบรรทัดนี้ลงในไฟล์:
proxy=http://user:pwd@IP_address_or_FQDN:port

ตัวอย่าง:

proxy=http://testuser:[email protected]:3128
  1. เรียกใช้ cURL ตามปกติ:
$ curl "https://www.reddit.com"

เคล็ดลับ 2: การเปิดใช้งานและการปิดใช้งานพรอกซี

สร้างนามแฝงในไฟล์ .bashrc ในตัวแก้ไขของคุณเพื่อทำสิ่งนี้:

$ cd ~
alias proxyon="export http_proxy='http://user:pwd@Proxy_IP_or_FQDN:Port';export https_proxy='http://user:pwd@Proxy_IP_or_FQDN:Port'"
alias proxyoff="unset http_proxy;unset https_proxy"

ตัวอย่าง:

alias proxyon="export http_proxy='http://testuser:[email protected]:3128';export https_proxy='http://testuser:[email protected]:3128'"

ตรวจสอบการตั้งค่านามแฝงอย่างรวดเร็วด้วยการรันคำสั่งนามแฝงในเทอร์มินัล บันทึก .bashrc และอัพเดตเชลล์โดยใช้:

$ ~/.bashrc

เคล็ดลับ 3: การหลีกเลี่ยงข้อผิดพลาดใบรับรอง SSL

เมื่อ cUrl พบข้อผิดพลาดใบรับรอง SSL ระบบจะบล็อกคำขอเหล่านั้น หากต้องการ 'ข้าม' ข้อผิดพลาดใบรับรอง SSL สำหรับการดีบัก โดยเฉพาะอย่างยิ่งในสถานการณ์ที่เกิดขึ้นครั้งเดียว ให้เพิ่ม -k หรือ –insecure ลงในบรรทัดคำสั่ง cUrl:

curl -x "[protocol://][host][:port]" -k [URL]

เคล็ดลับ 4: การได้รับข้อมูลเพิ่มเติมเกี่ยวกับคำขอ

หากคำขอของคุณไม่ทำงานตามที่คาดไว้ คุณอาจต้องการตรวจสอบเส้นทางคำขอ ส่วนหัว และข้อผิดพลาดต่างๆ หากต้องการตรวจสอบคำขอ ให้เพิ่ม -v (–verbose) ลงในคำขอหลัง cUrl ซึ่งจะส่งออกส่วนหัวคำขอและการเชื่อมต่อทั้งหมดที่พบ

เคล็ดลับ 5: ละเว้นพรอกซีสำหรับคำขอเดียว

หากต้องการแทนที่พร็อกซีสำหรับคำขอเฉพาะ ให้ใช้บรรทัดคำสั่งต่อไปนี้:

curl --proxy "http://user:pwd@Proxy_FQDN_or_IPAddress" "https://reddit.com"

หรือใช้:

$ curl --noproxy "*" https://www.reddit.com

เพื่อเลี่ยงผ่านผู้รับมอบฉันทะโดยสิ้นเชิง ด้วยตัวเลือก -v จะแสดงการเชื่อมต่อไปยัง Reddit โดยตรงโดยไม่ต้องใช้พร็อกซีใดๆ

เคล็ดลับ 6: การใช้ SOCK Proxies

หากคุณต้องการใช้พร็อกซี SOCK ประเภทใดๆ (4/4a/5/5h) โครงสร้างโค้ดจะยังคงเหมือนเดิม ยกเว้นคุณจะแทนที่ส่วนที่เกี่ยวข้องด้วยประเภท SOCKS ที่เหมาะสม:

curl -x "socks5://user:pwd@Proxy_IP_or_FQDN:Port" https://www.reddit.com

ตัวอย่าง:

$ curl -x "socks5://testuser:[email protected]:3128" https://www.reddit.com

เคล็ดลับสำหรับมือโปร 7: หากไม่มีการระบุโปรโตคอล cURL จะมีค่าเริ่มต้นเป็น SOCKS4!

เคิร์ล vs Wget

Wget เป็นเครื่องมือบรรทัดคำสั่งที่มีคุณสมบัติมากมายที่ช่วยให้สามารถถ่ายโอนไฟล์โดยใช้โปรโตคอลเครือข่ายมาตรฐาน เช่น HTTP, HTTPS และ FTP ชื่อของมันคือการรวมกันของตัวอักษรตัวแรกของ WWW และ 'get' ซึ่งรับทราบว่า Wget ถูกสร้างขึ้นเพื่อการแลกเปลี่ยนข้อมูลเว็บเป็นหลัก

ไวยากรณ์มาตรฐานสำหรับคำสั่ง Wget คือ:

Wget [option] [URL]

คำสั่ง Wget เปรียบได้กับคำสั่ง cURL และทำหน้าที่คล้ายกันแต่มีวิธีการต่างกัน

5 ความคล้ายคลึงกันระหว่าง cURL และ Wget

  • ทั้งสองเป็นยูทิลิตี้บรรทัดคำสั่งที่สามารถดาวน์โหลดไฟล์จาก FTP และ HTTP หรือ HTTPS และรองรับคำขอ HTTP POST
  • ทั้งสองเป็นซอฟต์แวร์โอเพ่นซอร์ส
  • ทั้ง cURL และ Wget เปิดตัวในปีเดียวกันคือ 1996
  • ทั้งสองมีใบอนุญาตที่คล้ายกัน นั่นคือใบอนุญาต GPLv3
  • ทั้งสองเป็นแพ็คเกจซอฟต์แวร์น้ำหนักเบาที่ทำงานบนระบบปฏิบัติการหลายระบบ

10 ความแตกต่างระหว่าง cURL และ Wget

ความแตกต่างที่สำคัญระหว่าง cURL และ Wget อยู่ที่วิธีที่ยูทิลิตี้เหล่านี้ดำเนินการตามคำขอและทรัพยากรที่พวกเขาใช้เพื่อบรรลุเป้าหมาย ตารางต่อไปนี้เน้นความแตกต่างเหล่านี้:

ม้วนผม รับ
1. ห้องสมุด สนับสนุนโดยไลบรารี libcURL ไม่จำเป็นต้องมีห้องสมุด
2. การดำเนินงาน ส่งข้อมูลในการดำเนินการเดียว ไม่มีการดาวน์โหลดซ้ำ รองรับการดาวน์โหลดแบบเรียกซ้ำ
3. โปรโตคอล รองรับอาร์เรย์ของโปรโตคอลเครือข่าย รองรับเพียง HTTP(S) และ FTP
4. ดาวน์โหลด ต้องใช้ -o หรือ -O เพื่อดาวน์โหลด URL ระยะไกลไปยังไฟล์ในเครื่อง ไม่จำเป็นต้อง -o หรือ -O เพื่อดาวน์โหลด URL ที่ห่างไกล
5. การอัพโหลด สามารถอัพโหลดและถ่ายโอนข้อมูลได้ทั้งสองทิศทาง รองรับคำขอ HTTP POST แบบธรรมดาเท่านั้น
6. หนังสือมอบฉันทะ รองรับประเภทพร็อกซี HTTPS, SOCKS 4 และ SOCKS 5 รองรับพร็อกซี HTTP แต่ไม่ใช่ประเภทพร็อกซี SOCKS
7. การรับรองความถูกต้อง รองรับเทคนิคการตรวจสอบสิทธิ์เพิ่มเติมสำหรับพร็อกซี HTTP รองรับกระบวนการตรวจสอบสิทธิ์ขั้นพื้นฐานสำหรับพร็อกซี HTTP เท่านั้น
8. การพกพา พกพาสะดวกยิ่งขึ้นและติดตั้งมาพร้อมกับ Windows และ macOS พกพาน้อยลงและไม่ได้ติดตั้งไว้ล่วงหน้าบน Windows และ macOS
9. คุณสมบัติ กำหนดให้ระบุคุณลักษณะทุกอย่างโดยตรง มีคุณสมบัติเช่นคุกกี้และการประทับเวลาเปิดใช้งานตามค่าเริ่มต้น
10. ข้อกำหนด ไม่ต้องใช้แพ็คเกจ gnulib หรือคอมไพเลอร์ C99 ต้องใช้ gnulib และคอมไพเลอร์ C99 เมื่อใดจึงจะใช้ cURL หรือ Wget

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

  • Wget จัดการการลองดาวน์โหลดซ้ำผ่านการเชื่อมต่อที่สั่นคลอนได้ดีกว่า cURL
  • Wget นำเสนอความสามารถในการดาวน์โหลด เช่น การดาวน์โหลดแบบเรียกซ้ำและการควบคุมแบนด์วิธที่ cURL ขาด

ดังนั้นจึงเป็นการดีที่สุดที่จะใช้คำสั่ง Wget ในสถานการณ์เช่นนี้ นอกจากนี้ เมื่อใช้โปรโตคอลเครือข่ายอื่นที่ไม่ใช่ HTTP/HTTPS และ FTP cURL จะเป็นตัวเลือกที่ดีกว่า การเลือกว่าจะใช้ cURL หรือ Wget จะขึ้นอยู่กับลักษณะเฉพาะของงานที่คุณกำลังดำเนินการอยู่เสมอ

บทสรุป

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

จากสิ่งที่เราได้พูดคุยกันไปแล้ว คุณอาจกำลังพิจารณาลองใช้เอฟเฟกต์เจ๋งๆ ของ cURL ถ้ายังไม่ได้พิจารณาก็ควร Stay cURLy (ตั้งใจเล่นสำนวน)

เลือกและซื้อพร็อกซี

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

เลือกแพ็คเกจพร็อกซีของคุณ

เลือกและซื้อพร็อกซี