วิธีการใช้ cURL เพื่อโหลดเว็บเพจ

จากที่เคยแนะนำ วิธีการใช้คำสั่ง wget รันเป็นคำสั่งบน comand line เพื่อโหลดเว็บเพจได้ มาครั้งนี้ ขอแนะนำอีกคำสั่งคือ cURL โปรแกรมทำหน้าที่คล้ายกันแต่มีคุณสมบัติมากกว่า แถม curl ยังมี library (libcurl) ที่ภาษาต่างๆ เช่น PHP นำไปพัฒนาสร้างเป็นฟังก์ชั่นให้เรียกใช้ในการเขียนโปรแกรมได้


เริ่มต้นการใช้ด้วยการรันคำสั่ง curl ตามด้วย URL ของเว็บไซต์ เช่นต้องการโหลดเว็บหน้าแรกของ www.apple.com

[user1@dev ~]$ curl http://www.apple.com
 <!DOCTYPE html>
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
 <head>
 <meta http-equiv="content-type" content="text/html; charset=utf-8" />
 <meta name="Author" content="Apple Inc." />
 <meta name="viewport" content="width=1024" />
 <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7, IE=9" />
 <link id="globalheader-stylesheet" rel="stylesheet" href="http://images.apple.com/global/nav/styles/navigation.css" type="text/css" />
 <title>Apple</title>
 ...

ดีฟอลต์ผลลัพธ์ที่ได้จะแสดงผลออกทางหน้าจอ (stdout)

ออปชั่น -o (output)

ระบุออปชั่น “-o’ ถ้าต้องการบันทึกผลลัพธ์เป็นไฟล์

[user1@dev dev]$ curl -o apple-index.html http://www.apple.com
 % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
 Dload  Upload   Total   Spent    Left  Speed
 100  9346  100  9346    0     0  31031      0 --:--:-- --:--:-- --:--:-- 59151

ไฟล์ผลลัพธ์ที่ได้

[user1@dev dev]$ ls -l
 total 12
 -rw-r--r--. 1 user1 users 9346 Dec 16 22:56 apple-index.html

[user1@dev dev]$ head apple-index.html
 <!DOCTYPE html>
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
 <head>
 <meta http-equiv="content-type" content="text/html; charset=utf-8" />
 <meta name="Author" content="Apple Inc." />
 <meta name="viewport" content="width=1024" />
 <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7, IE=9" />
 <link id="globalheader-stylesheet" rel="stylesheet" href="http://images.apple.com/global/nav/styles/navigation.css" type="text/css" />
<title>Apple</title>

ออปชั่น -v (verbose)

หากต้องการดูรายละเอียด ขั้นตอนการโหลดเว็บเพจ สามารถทำได้โดยการระบุออปชั่น “-v”

[user1@dev dev]$ curl -v http://www.apple.com
 * About to connect() to www.apple.com port 80 (#0)
 *   Trying 118.214.125.15... connected
 * Connected to www.apple.com (118.214.125.15) port 80 (#0)
 > GET / HTTP/1.1
 > User-Agent: curl/7.21.7 (x86_64-redhat-linux-gnu) libcurl/7.21.7 NSS/3.12.10.0 zlib/1.2.5 libidn/1.22 libssh2/1.2.7
 > Host: www.apple.com
 > Accept: */*
 >
 < HTTP/1.1 200 OK
 < Content-Type: text/html; charset=UTF-8
 < Server: Apache/2.2.3 (Oracle)
 < Cache-Control: max-age=531
 < Expires: Fri, 16 Dec 2011 16:06:55 GMT
 < Date: Fri, 16 Dec 2011 15:58:04 GMT
 < Content-Length: 9346
 < Connection: keep-alive
 <
 <!DOCTYPE html>
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
 <head>
 <meta http-equiv="content-type" content="text/html; charset=utf-8" />
 <meta name="Author" content="Apple Inc." />
 <meta name="viewport" content="width=1024" />
 <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7, IE=9" />
 <link id="globalheader-stylesheet" rel="stylesheet" href="http://images.apple.com/global/nav/styles/navigation.css" type="text/css" />
<title>Apple</title>
 ...

ออปชั่น -h (help)

ระบุออปชั่น “-h” เพื่อดูออปชั่นอื่นๆ พร้อมคำอธิบายคร่าวๆ

[user1@dev ~]$ curl  --help
Usage: curl [options...] <url>
Options: (H) means HTTP/HTTPS only, (F) means FTP only
     --anyauth       Pick "any" authentication method (H)
 -a, --append        Append to target file when uploading (F/SFTP)
     --basic         Use HTTP Basic Authentication (H)
     --cacert FILE   CA certificate to verify peer against (SSL)
     --capath DIR    CA directory to verify peer against (SSL)
 -E, --cert CERT[:PASSWD] Client certificate file and password (SSL)
     --cert-type TYPE Certificate file type (DER/PEM/ENG) (SSL)
...

ข้อมูลอ้างอิง

Leave a Reply

Your email address will not be published.