linux curl d 用法,Linux下cURL使用教程之三:curl基本使用
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使用选项,下篇将结合实例具体说明。
linux curl d 用法,Linux下cURL使用教程之三:curl基本使用相关推荐
- linux find ok用法,linux下find命令用法
一.Linux中find常見用法示例·find path -option [ -print ] [ -exec -ok command ] {} /; ...
- linux signal函数用法,linux信号机制之sigaction构造体浅析,signal 函数,信号捕捉.
来自:http://hi.baidu.com/phenix_yw/blog/item/6eb4ca391d1479f23a87ce19.html 信号安装函数sigaction(int signum, ...
- linux中gawk用法,Linux - gawk 命令
gawk 是 awk 的 GUN 版 =========================================== 是一种<模式扫描和处理>语言.它搜索一个或多个文件,查看这些文 ...
- linux env命令用法,Linux env命令
可以使用env命令传递环境变量,而无需在外部环境(当前shell)上设置它们. 假设您想运行一个Node.js应用程序,并为其设置USER变量. 您可以运行: env USER=flavio node ...
- linux 脚本scp用法,Linux scp命令用法及实例分享
Linux下scp的用法 scp就是secure copy,一个在linux下用来进行远程拷贝文件的命令. 有时我们需要获得远程服务器上的某个文件,该服务器既没有配置ftp服务器,也没有做共享,无法通 ...
- linux expect循环用法,Linux expect用法介绍
1.expect是linux中一个交互命令,一般在 /usr/bin/expect路径下,如果该路径未加入到环境中需要先添加,其作用场景常用于交互执行输入指令 常用命令: expect 获取上一命令执 ...
- linux中xargs用法,Linux中xargs的用法
xargs 大 多数 Linux 命令都会产生输出:文件列表.字符串列表等.但如果要使用其他某个命令并将前一个命令的输出作为参数该怎么办?例如,file 命令显示文件类型(可执行文件.ascii 文本 ...
- linux系统grep用法,Linux系统中怎么使用grep命令?
在维护Linux系统时,我们常常需要在文本中搜索需要的东西,如果人为手动的去找那显然效率低下,那么如何才能快速找到所需要的文本呢?下面小编就以CentOS6.4系统为例为大家演示如何进行文本查找. 一 ...
- linux+tar高级用法,Linux tar命令高级用法——备份数据
Linux上有功能强大的tar命令,tar最初是为了制作磁带备份(tape archive)而设计的,它的作用是把文件和目录备份到磁带中,然后从磁带中提取或恢复文件.现在我们可以使用tar来备份 ...
最新文章
- 如何查看 phtml文件 并有代码颜色提示
- com.android.builder.packaging.DuplicateFileException
- android/linux中的第一个init程序的启动
- setContentView( )方法
- 数据结构 2018统考题【找出数组中未出现的最小正整数】
- PHP实现页面跳转的几种方法
- js pug 代码_pug模版学习(一)
- 案例与案例之间的非常规排版
- 『飞鸽』百度悄然进军客户端领域
- android标题栏上增加按钮,Android:向自定义标题栏添加按钮
- Notepad++设置记录
- Evevt Loop 事件循环
- cocosCreator 全局变量(Ts版)
- 由浅入深 学习 Android Binder(十一) binder线程池
- treeset可以重复吗_买了好几份意外险,可以重复理赔吗?
- CSS代码写一个网页,有留言板
- mysql assoc什么意思_mysql_fetch_assoc 报错
- elipse如何退出调试模式
- 利用Fuel-OpenStack9.0安装部署私有云平台OpenStack详细教程(上)
- 信息安全技术——(三)标识与认证技术
热门文章
- 使用dpkg命令安装deb文件包
- matlab 折线束的包络,用matlab绘制图1中右图的圆、折线束及其包络线(心形线),请给出步骤及其实现原理,...
- 【MAC】照片图库分割!省空间又加快执行速度
- Linux shuf --随机选择器
- C#开发:串口工具数据保存入数据库,用于UWB
- Java 教程 目录
- python冰雪奇缘使用教程_99 行代码的《冰雪奇缘》
- 滤镜CIFilter简单处理(模糊效果,旧色调处理)
- 个人深度学习主机的搭建_1-硬件的选择与组装
- QNAP更新失败,WEB页一直处于反复系统更新页面