资讯专栏INFORMATION COLUMN

linux 命令之 curl

weapon / 1181人阅读

摘要:假装是从页面跳转到目的页面的选项可以伪造。选项可以将保存到指定文件。用户认证进行的认证下载文件上传文件限速与限额选项设置传输速度选项设置最大下载的文件总量参考命令详解命令详解,以及实例网站开发指南

curl 命令是一个利用 URL 规则在命令行下工作的文件传输工具。它支持文件的上传和下载,所以是综合传输工具,但按传统,习惯称 curl 为下载工具。

它支持包括 HTTP、HTTPS、ftp等众多协议,还支持 POST、cookies、认证、从指定偏移处下载部分文件、用户代理字符串、限速、文件大小、进度条等特征。

常用选项

抓取页面信息

-o 将文件保存为命令行中指定的文件名的文件中
-O 使用URL中默认的文件名保存文件到本地

 # 将文件下载到本地并命名为 mygettext.html
curl -o mygettext.html http://www.gnu.org/software/gettext/manual/gettext.html

# 将文件保存到本地并命名为gettext.html,后面的 url 可以写正则
curl -O http://www.gnu.org/software/gettext/manual/gettext.html

# -O -O 可以同时下载多个文件
# 不加这个选项会直接打印到标准输出

网页重定向

有些网页,比如 www.sina.com, 发生了跳转,直接 curl 的话无法获得网页源码,这时需要加 -L 选项

# 遇到重定向时,使用该选项可以将请求重定向到新的地址上
curl -L www.sina.com

断点续传

当 curl 网页时中途终端,可以使用 -C 选项来接着已经完成的下载,已经下载过的文件不会被重新下载。

# 当文件在下载完成之前结束该进程
$ curl -O http://www.gnu.org/software/gettext/manual/gettext.html
##############             20.1%

$ curl -C -O http://www.gnu.org/software/gettext/manual/gettext.html
###############            21.1%

获得请求信息或通信过程

-i 显示 http response 的头信息,连同网页代码一起。
-I/--head 只显示 response 头部信息。
-v 显示一次http通信的整个过程,包括端口连接和http request头信息。
或者使用下面的命令获得更详细的通信过程:
curl --trace output.txt www.sina.com

发送表单信息

对于 GET 方法,由于参数数据在 url 上,因此,可以直接 curl,这也是 curl 默认方法。
对于其他方法,则需要使用 -X 选项进行指定,如 POST、DELETE 等。

$ curl -X POST --data "data=xxx" example.com

--data 等同于 -d,有以下几种用法:

-d @file # 将提交的参数放在文件里
-d "string" # 多参数形式为 xxx&xxx
--data "string"
--data-ascii "string"
--data-binary "string"
--data-urlencode "string # 含有特殊符号的需要进行 url 编码

伪造头部信息

-e/--referer 选项可以伪造来源网址。

# 假装是从 http://www.google.com 页面跳转到目的页面的
$ curl --referer http://www.google.com http://man.linuxde.net

-A/--user-agent 选项可以伪造 UA。

curl URL -A "Mozilla/5.0"

-H/--header 自定义头部信息

curl -H "Host:man.linuxde.net" -H "accept-language:zh-cn" 

-x/--proxy 设置代理

设置 cookie

-b/--cookie 选项用来设置 cookie 或者从指定文件中读取 cookie 信息发起 http 请求。

$ curl --cookie "name=xxx;pass=xxx" www.example.com

-c/--cookie-jar 选项可以将 cookies 保存到指定文件。

用户认证

-u/--user 进行 http/ftp 的认证

下载文件

$ curl -u name:password www.example.com
$ curl -O ftp://name:passwd@ip:port/demo/curtain/bbstudy_files/style.css  

上传文件

$ curl -T test.sql ftp://name:passwd@ip:port/demo/curtain/bbstudy_files/ 

限速与限额

--limit-rate 选项设置传输速度

curl URL --limit-rate 50k

--max-filesize 选项设置最大下载的文件总量

curl URL --max-filesize bytes
参考

【1】 Linux curl 命令详解
【2】linux curl 命令详解,以及实例
【3】curl网站开发指南

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/10063.html

相关文章

  • Linux 上运行 PowerShell

    摘要:全称,在开发之初,微软将其命名为代号。这个原本只是才能使用的组件,于年月日开源并且成为跨平台软件,登陆了和。微软的纳德拉说我爱,你觉得这事儿靠谱吗不如先行试用。 PowerShell 全称 Windows PowerShell,在开发之初,微软将其命名为代号 Monad。它首先是个 Shell,它能够启动和操纵应用程序;其次 PowerShell 也可以将几个命令组合起来放在文件中执行...

    tuniutech 评论0 收藏0
  • Linux 上运行 PowerShell

    摘要:全称,在开发之初,微软将其命名为代号。这个原本只是才能使用的组件,于年月日开源并且成为跨平台软件,登陆了和。微软的纳德拉说我爱,你觉得这事儿靠谱吗不如先行试用。 PowerShell 全称 Windows PowerShell,在开发之初,微软将其命名为代号 Monad。它首先是个 Shell,它能够启动和操纵应用程序;其次 PowerShell 也可以将几个命令组合起来放在文件中执行...

    jsdt 评论0 收藏0
  • Linux 上运行 PowerShell

    摘要:全称,在开发之初,微软将其命名为代号。这个原本只是才能使用的组件,于年月日开源并且成为跨平台软件,登陆了和。微软的纳德拉说我爱,你觉得这事儿靠谱吗不如先行试用。 PowerShell 全称 Windows PowerShell,在开发之初,微软将其命名为代号 Monad。它首先是个 Shell,它能够启动和操纵应用程序;其次 PowerShell 也可以将几个命令组合起来放在文件中执行...

    or0fun 评论0 收藏0
  • Linux的一下常用命令详解

    摘要:对于系统而言是一套免费使用和自由传播的类操作系统,是一个基于和的多用户多任务支持多线程和多的操作系统。它能运行主要的工具软件应用程序和网络协议。常见的的命令很多。其作用等于参数组合。命令用来为文件或目录改名或将文件或目录移入其它位置。 对于lunix系统而言 Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操...

    mengbo 评论0 收藏0
  • Linux Shell curl 和 wget 使用代理IP

    摘要:米扑代理示例,测试使用的代理,全部来自于米扑代理,其覆盖多个国家,中国个省市,支持等米扑代理示例官网参考推荐米扑代理之使用示例推荐抓取网页实例代理筛选系统 Linux Shell 提供两个非常实用的命令来爬取网页,它们分别是 curl 和 wget curl 和 wget 使用代理 curl 支持 http、https、socks4、socks5 wget 支持 http、https...

    microcosm1994 评论0 收藏0

发表评论

0条评论

weapon

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<