通用语法:
curl [option] [URL...]
在处理URL时其支持类型于SHELL的名称扩展功能,如http://www.linuxidc.com/archive[1996-1999]/vol[1-4]/part{a,b,c}.html可以生成多个期望的URL

curl的选项功能:

  • 不带任何参数时 curl 将返回指定url中的数据并打印在屏幕上

  • -u 使用用户名和密码登陆。

  • 如curl -uname:passwd URL

  • -b/--cookie    向服务器提交cookie,若无=则name视为文件名,

  • 例如:curl -b cookie.txt www.linuxidc.com

  • -o out  将指定curl返回保存为out文件,内容从html/jpg到各种MIME类型文件。

  • 如curl -o page.html URL

  • -d   向服务器POST表单数据 

  • 例如:curl -d "order=111&count=2" http://www.linuxidc.com/buy

  • -A/--user-agent    指定发送请求的用户代理,有些网站总要我们使用某些特定的浏览器去访问他们,有时候更过分的是,还要使用某些特定的版本,怎么办呢?好在curl给我们提供了一个有用的option,可以让我们随意指定自己这次访问所宣称的自己的浏览器信息

  • 例如:curl -A "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)" -x 123.45.67.8Array:1080 -o page.html -D cookieme.txt http://www.linuxidc.com 

  • -x  ip:port 指定http访问所使用的proxy服务器及其端口

  • 例如:curl -x 123.45.67.8Array:1080 -o page.html http://www.linuxidc.com

  • -D head.txt  将服务器的返回的header保存为文件,头部的cookie也可被保存,访问有些网站的时候比较讨厌,在设计时他们使用cookie来记录session信息。像IE这样的浏览器可以轻易处理cookie信息,但我们的curl呢?我们来学习这个option: -D这个是把http的response里面的cookie信息存到一个特别的文件中去

  • 例如:curl -D header.txt www.linuxidc.com  

    • 如果希望从本地文件中获取表单数据,则在文件名前加@ ,

    • 例如:curl -d @data.xml http://www.linuxidc.com

    • 若希望从标准输入获取则用 

    • curl -d "name=username&passwd=pwd" http://www.linuxidc.com

  • -L 当页面有跳转的时候,输出跳转到的页面

  • 当有跳转时,可以通过 curl -L -I URL|grep Location 来确定跳转到的新url地址

  • -I  header信息  

  • 只输header头信息

  • -c 保存服务器的cookie文件

  • -e url  设置引用头的值,欺骗服务器的安全设置盗取相关资源,设定referer

  • curl -A "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)" -x 123.45.67.8Array:1080 -e "mail.linuxidc.com" -o page.html -D cookieme.txt http://www.linuxidc.com

  • -T localfile  向服务器PUT文件

  •  例如:curl -T 1.mp3  www.linuxidc.com/upload.php

  • -F 向服务器POST表单,

  • 例如:curl -F "web=@index.html;type=text/html" url.com

  • -E cert.pem  指定本地证书

  • -H   为HTTP请求设置任意header及值。

  • 如curl -H "Connection:keep-alive" http://www.linuxidc.com

  • -X/--request method 用户定义的HTTP请求方法名如 curl -X GET www.baidu.com

  • --compressed 采用压缩方式接收返回数据

  • --connect-timeout 设置超时时间

  • -v 详细输出,包含请求和响应的首部

  • --retry num

  • --retry timeo 指定重试的次数和间隔

  • --tcp-nodelay 打开TCP_NODELAY选项  不进行捎带确认

  • -O  按服务器上的名称保存下载的文件

  • -r/--range  from-to 下载指定range内的数据

  • -C 在保存文件时进行续传


————————————————————————————————————

shell命令:curl -I -m 10 -o /dev/null -s -w %{http_code} http://test.com


curl爬取过程中,会返回一个http_code,下面是他们的意义信息
$http_code["0"]="Unable to access";
$http_code["100"]="Continue";
$http_code["101"]="Switching Protocols";

$http_code["200"]=”OK”;
$http_code["201"]=”Created”;
$http_code["202"]=”Accepted”;
$http_code["203"]=”Non-Authoritative Information”;
$http_code["204"]=”No Content”;
$http_code["205"]=”Reset Content”;
$http_code["206"]=”Partial Content”;
$http_code["300"]=”Multiple Choices”;
$http_code["301"]=”Moved Permanently”;
$http_code["302"]=”Found”;
$http_code["303"]=”See Other”;
$http_code["304"]=”Not Modified”;
$http_code["305"]=”Use Proxy”;
$http_code["306"]=”(Unused)”;
$http_code["307"]=”Temporary Redirect”;
$http_code["400"]=”Bad Request”;
$http_code["401"]=”Unauthorized”;
$http_code["402"]=”Payment Required”;
$http_code["403"]=”Forbidden”;
$http_code["404"]=”Not Found”;
$http_code["405"]=”Method Not Allowed”;
$http_code["406"]=”Not Acceptable”;
$http_code["407"]=”Proxy Authentication Required”;
$http_code["408"]=”Request Timeout”;
$http_code["409"]=”Conflict”;
$http_code["410"]=”Gone”;
$http_code["411"]=”Length Required”;
$http_code["412"]=”Precondition Failed”;
$http_code["413"]=”Request Entity Too Large”;
$http_code["414"]=”Request-URI Too Long”;
$http_code["415"]=”Unsupported Media Type”;
$http_code["416"]=”Requested Range Not Satisfiable”;
$http_code["417"]=”Expectation Failed”;
$http_code["500"]=”Internal Server Error”;
$http_code["501"]=”Not Implemented”;
$http_code["502"]=”Bad Gateway”;
$http_code["503"]=”Service Unavailable”;
$http_code["504"]=”Gateway Timeout”;
$http_code["505"]=”HTTP Version Not Supported”;


   

Linux curl使用简单介绍 http://www.linuxidc.com/Linux/2008-01/10891.htm

Unix下Curl的使用方法及常用功能记录分享 http://www.linuxidc.com/Linux/2012-08/69154.htm