博客 / Linux/ 【转载】linux常用curl命令用法示例

【转载】linux常用curl命令用法示例

【转载】linux常用curl命令用法示例

curl 是一个在命令行下使用 URL 语法进行数据传输的工具,支持 HTTP、HTTPS、FTP、FTPS、TELNET 等多种协议,常用于抓取网页内容、测试 API 接口和监控服务器状态。

Linux curl 用法示例

1. 抓取网页内容

抓取百度首页:

curl http://www.baidu.com

如果返回内容出现中文乱码,可以使用 iconv 命令进行转码:

curl http://iframe.ip138.com/ic.asp | iconv -f gb2312

关于 iconv 命令的详细用法,可参考相关文档处理文本文件的中文编码问题。

2. 使用代理服务器

通过 HTTP 代理抓取页面:

curl -x 111.95.243.36:80 http://iframe.ip138.com/ic.asp | iconv -f gb2312
curl -x 111.95.243.36:80 -U username:password http://www.baidu.com

通过 SOCKS 代理抓取页面:

curl --socks4 202.113.65.229:443 http://iframe.ip138.com/ic.asp | iconv -f gb2312
curl --socks5 202.113.65.229:443 http://iframe.ip138.com/ic.asp | iconv -f gb2312

代理服务器地址可从可靠的代理服务商处获取。

3. 处理 Cookies

接收并保存 Cookies 到文件:

curl -c /tmp/cookies http://www.baidu.com

发送 Cookies:

curl -b "key1=val1;key2=val2;" http://www.baidu.com
curl -b /tmp/cookies http://www.baidu.com

第一行命令直接发送 Cookie 字符串,第二行从文件中读取 Cookie 并发送。

4. 发送数据

使用 GET 方法提交数据:

curl -G -d "name=value&name2=value2" http://www.baidu.com

使用 POST 方法提交数据:

curl -d "name=value&name2=value2" http://www.baidu.com
curl -d a=b&c=d&txt@/tmp/txt http://www.baidu.com

以表单形式上传文件:

curl -F file=@/tmp/me.txt http://www.aiezu.com

这相当于设置了表单的 method="POST"enctype='multipart/form-data' 属性。

5. HTTP 头部处理

设置 HTTP 请求头信息:

curl -A "Mozilla/5.0 Firefox/21.0" http://www.baidu.com
curl -e "http://pachong.org/" http://www.baidu.com
curl -H "Connection:keep-alivenUser-Agent: Mozilla/5.0" http://www.aiezu.com

设置并处理 HTTP 响应头:

curl -I http://www.aiezu.com
curl -D /tmp/header http://www.aiezu.com

第一行命令仅返回响应头,第二行将响应头保存到指定文件。

6. 认证

使用用户名密码进行基本认证:

curl -u username:password http://www.aiezu.com

使用客户端证书进行认证:

curl -E mycert.pem https://www.baidu.com

7. 其他常用选项

显示进度条:

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

将输出保存到文件:

curl -o /tmp/aiezu http://www.baidu.com

发表评论

您的邮箱不会公开。必填项已用 * 标注。