curl详解

Linux下载工具Curl也是Linux下不错的命令行下载工具,小巧、高速,唯一的缺点是不支持多线程下载。以下是他的安装和功能。

  • 安装
  • $ tar zxvf curl-7.14.0.tar.gz
  • $ cd curl-7.14.0/
  • $ ./configure
  • $ make
  • $ make test
  • $ make install

参数详情

  • 参数: 描述
  • -M/–manual 显示全手动
  • -n/–netrc 从netrc文件中读取用户名和密码
  • –netrc-optional 使用 .netrc 或者 URL来覆盖-n
  • –ntlm 使用 HTTP NTLM 身份验证
  • -N/–no-buffer 禁用缓冲输出
  • -o/–output 把输出写到该文件中
  • -O/–remote-name 把输出写到该文件中,保留远程文件的文件名
  • -p/–proxytunnel 使用HTTP代理
  • –proxy-anyauth 选择任一代理身份验证方法
  • –proxy-basic 在代理上使用基本身份验证
  • –proxy-digest 在代理上使用数字身份验证
  • –proxy-ntlm 在代理上使用ntlm身份验证
  • -P/–ftp-port
  • 使用端口地址,而不是使用PASV
  • -Q/–quote 文件传输前,发送命令到服务器
  • -r/–range 检索来自HTTP/1.1或FTP服务器字节范围
  • –range-file 读取(SSL)的随机文件
  • -R/–remote-time 在本地生成文件时,保留远程文件时间
  • –retry 传输出现问题时,重试的次数
  • –retry-delay 传输出现问题时,设置重试间隔时间
  • –retry-max-time 传输出现问题时,设置最大重试时间
  • -s/–silent 静音模式。不输出任何东西
  • -S/–show-error 显示错误
  • –socks4 用socks4代理给定主机和端口
  • –socks5 用socks5代理给定主机和端口
  • -t/–telnet-option Telnet选项设置
  • –trace 对指定文件进行debug
  • –trace-ascii Like 跟踪但没有hex输出
  • –retry-delay 传输出现问题时,设置重试间隔时间
  • –trace-time 跟踪/详细输出时,添加时间戳
  • -T/–upload-file 上传文件
  • –url Spet URL to work with
  • -u/–user 设置服务器的用户和密码
  • -U/–proxy-user 设置代理用户名和密码
  • -V/–version 显示版本信息
  • -w/–write-out [format] 什么输出完成后
  • -x/–proxy 在给定的端口上使用HTTP代理
  • -X/–request 指定什么命令
  • -y/–speed-time 放弃限速所要的时间。默认为30
  • -Y/–speed-limit 停止传输速度的限制,速度时间秒
  • -z/–time-cond 传送时间设置

常用curl实例

抓取页面内容到一个文件中

 $ curl -o home.html  http://www.sina.com.cn 

用-O(大写的),后面的url要具体到某个文件,不然抓不下来。我们还可以用正则来抓取东西

 $ curl -O http://www.it415.com/czxt/linux/25002_3.html 

模拟表单信息,模拟登录,保存cookie信息

 $ curl -c ./cookie_c.txt -F log=aaaa -F pwd=****** http://blog.51yip.com/wp-login.php 

模拟表单信息,模拟登录,保存头信息

 $ curl -D ./cookie_D.txt -F log=aaaa -F pwd=****** http://blog.51yip.com/wp-login.php 
 #-c(小写)产生的cookie和-D里面的cookie是不一样的

使用cookie文件

  $ curl -b ./cookie_c.txt  http://blog.51yip.com/wp-admin 

断点续传,-C(大写的)

 $ curl -C -O http://www.sina.com.cn 

传送数据,最好用登录页面测试,因为你传值过去后,curl回抓数据,你可以看到你传值有没有成功

 $ curl -d log=aaaa  http://blog.51yip.com/wp-login.php 

显示抓取错误

 $ curl -f http://www.sina.com.cn/asdf 
  #curl: (22) The requested URL returned error: 404

伪造来源地址,有的网站会判断,请求来源地址

$  curl -e http://localhost http://www.sina.com.cn 

当我们经常用curl去搞人家东西的时候,人家会把你的IP给屏蔽掉的,这个时候,我们可以用代理

  $ curl -x 10.10.90.83:80 -o home.html http://www.sina.com.cn 

比较大的东西,我们可以分段下载

 $  curl -r 0-100 -o img.part1 http://i2.f.itc.cn/thumb/180/bj/6018/b_60178154.jpg 

不显示下载进度信息

 $  curl -s -o aaa.jpg  

显示下载进度条

 $  curl -# -O  http://www.it415.com/czxt/linux/25002_3.html  

通过ftp下载文件

 $  curl -u 用户名:密码 -O http://blog.51yip.com/demo/curtain/bbstudy_files/style.css 

通过ftp上传

 $  curl -T xukai.php ftp://xukai:test@192.168.242.144:21/www/focus/enhouse/
linux/curl命令.txt · 最后更改: 2013/07/06 23:46 由 linyi
 
除额外注明的地方外,本维基上的内容按下列许可协议发布: CC Attribution-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki