linux curl d 用法,Linux下cURL使用教程之三:curl基本使用

66b52468c121889b900d4956032f1009.png

8种机械键盘轴体对比

本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选?

在介绍完cURL简介和需要的HTTP协议概述之后。终于可以回归正题,进入curl的使用方法。

curl命令格式

基本的使用用法如下:

curl [选项] [URL...]

GET一个网页

curl http://www.baidu.com

网页源码将被打印出来。

-o/--output 指定保存目录

为便于后续处理,我们将网页内容保存在文件中:

curl -o stackeye.html http://www.stackeye.com

此时仍会显示进度条等信息。

-s/--silent静默模式

通过脚本结合curl可以实现很复杂的功能,而在脚本中调用curl,我们不需要进度条等信息。如执行:

curl -s -o stackeye.html http://www.stackeye.com

将不会显示任何信息。

-v/–verbose查看通信过程、调试。

这个参数可以清晰的查看到curl的通信过程,以便于调试,如执行:

curl -v http://www.baidu.com

返回结果如下,可以清晰的看到curl发出的HTTP请求及服务器返回的HTTP响应:* About to connect() to www.baidu.com port 80 (#0)

* Trying 119.75.218.77... connected

* Connected to www.baidu.com (119.75.218.77) port 80 (#0)

> GET / HTTP/1.1

> User-Agent: curl/7.21.0 (i686-pc-linux-gnu) libcurl/7.21.0 OpenSSL/0.9.8o zlib/1.2.3.4 libidn/1.18

> Host: www.baidu.com

> Accept: */*

>

< HTTP/1.1 200 OK

< Date: Wed, 01 Aug 2012 12:39:15 GMT

< Server: BWS/1.0

< Content-Length: 8216

< Content-Type: text/html;charset=gbk

< Cache-Control: private

< Expires: Wed, 01 Aug 2012 12:39:15 GMT

< Set-Cookie: BAIDUID=AF0E3C36DBB60C0D7C29DE11705028D7:FG=1; expires=Wed, 01-Aug-42 12:39:15 GMT; path=/; domain=.baidu.com

< P3P: CP=" OTI DSP COR IVA OUR IND COM "

< Connection: Keep-Alive

<

以下为HTML内容,略

以下所有命令都可以通过加入-v选项,查看具体通信过程。

更详细的调试信息可以使用–trace-ascii选项,如:

curl --trace-ascii debug.txt http://www.baidu.com

-A/–user-agent指定User-Agent字段

此选项字段用于指定HTTP请求头的User-Agent字段,即客户端(如浏览器)类型。

很多网站为了防止自动化程序采集,仅允许浏览器访问,最简单的办法就是通过User-Agent字段识别客户端类型做出处理。而如下命令:curl -A "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"

http://www.stackeye.com

"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"为firefox的UserAgent值。

通过-A指定User-Agent字段,使curl伪装成Firefox,从而绕过网站的检测。

User-Agent字段可以通过抓包分析得到,或者通过chrome的Developer Tools、Firefox的Firebug等工具得到。

而如果一个网站对浏览器的限制也很严格的话,那我们甚至可以通过修改User-Agent伪装成百度蜘蛛或者googlebot突破限制,因为基于SEO的考虑,网站对搜索引擎蜘蛛的限制很小。

-e/–referer 设置Referer

此选项字段用于指定HTTP请求头中的Referer字段,即来源网页。

为了防盗链,很多网页尤其是图片等可下载资源会检测Referer字段,对于非自己站内的来源全部屏蔽掉,此时我们就需要这个参数。

通过执行:curl -A "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"

-e http://www.baidu.com http://www.stackeye.com

http://www.stackeye.com将检测到来源网站为http://www.baidu.com

cookie使用

cookie的介绍参考上一篇。

我们登录网站后,为保持登录状态,需要使用cookie信息。

-D/–dump-header 保存协议头部信息

-D/--dump-header 保存协议头部信息

头部信息中包含最常使用的cookie信息,如执行:curl -A "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"

-e http://www.baidu.com -D stackeyecookie.txt http://www.stackeye.com

会将头部信息保存至stackeyecookie.txt中。

-b/–cookie 指定cookie

-b/--cookie /指定cookie

-b后可直接加-D保存的文件,curl会自动从中读取出cookie值,而且-b选项不会修改此文件。如执行:curl -A "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"

-e http://www.baidu.com -b stackeyecookie.txt http://www.stackeye.com

会自动将stackeyecookie.txt中cookie信息附加至HTTP请求头中。

结合-D和-b参数,即可完成cookie的保存和后续使用。

cookie的形式就是“属性:值”对形式,-b后可直接以“属性=值”的形式给出cookie,当有多个属性时以分号间隔且包含在双引号中。如执行:curl -A "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"

-b "user=Adeploy;pass=password" http://www.stackeye.com

会将cookie信息user=Adeploy;pass=password附加在HTTP请求头中。

Redirects重定向

打开某些网页,网页会显示“ 3XX Moved Permanently ”,即网页被移动到其他位置,新位置一般由HTTP响应头中的Location字段给出。

重定向一般是因为网站结构调整后,避免用户访问原来页面出现404错误。

而另一类常见的用法就是在登陆成功后,网页显示成功信息,然后将用户重定向至内容页面。

-L/--location选项可以自动跟踪重定向。

总结

本篇只介绍简单的curl使用选项,下篇将结合实例具体说明。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值