Linux命令学习——常用curl实例

本文介绍curl命令的各种实用技巧,包括页面内容抓取、模拟登录、断点续传等功能,并提供了丰富的示例,帮助读者掌握curl的强大功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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

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

curl -O http://www.mydomain.com/linux/index.html

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

curl -c ./cookie_c.txt -F log=aaaa -F pwd=****** http://blog.mydomain.com/login.php

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

curl -D ./cookie_D.txt -F log=aaaa -F pwd=****** http://blog.mydomain.com/login.php

-c(小写)产生的cookie和-D里面的cookie是不一样的

使用cookie文件

curl -b ./cookie_c.txt  http://blog.mydomain.com/wp-admin

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

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

传送数据

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

curl -d log=aaaa  http://blog.mydomain.com/login.php

显示抓取错误 -f

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

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

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://mydomian.cn/thumb/xxx.jpg
  % Total    % Received % Xferd  Average Speed  Time    Time    Time  Current
                                Dload  Upload  Total  Spent    Left  Speed
100  101  100  101    0    0  1926      0 --:--:-- --:--:-- --:--:--    0
curl -r 100-200 -o img.part2 http://mydomian.cn/thumb/xxx.jpg
  % Total    % Received % Xferd  Average Speed  Time    Time    Time  Current
                                Dload  Upload  Total  Spent    Left  Speed
100  101  100  101    0    0  3498      0 --:--:-- --:--:-- --:--:--  98k
curl -r 200- -o img.part3 http://mydomian.cn/thumb/xxx.jpg
  % Total    % Received % Xferd  Average Speed  Time    Time    Time  Current
                                Dload  Upload  Total  Spent    Left  Speed
100 13515  100 13515    0    0  154k      0 --:--:-- --:--:-- --:--:--  280k
ll |grep img.part

用的时候,把他们cat一下就OK了,cat img.part* >img.jpg

不显示下载进度信息 -s

curl -s -o aaa.jpg

显示下载进度条 -#

curl -# -O  http://www.mydomain.com/linux/25002_3.html
######################################################################## 100.0%

通过ftp下载文件

curl -u 用户名:密码 -O http://blog.mydomain.com/demo/curtain/bbstudy_files/style.css
% Total    % Received % Xferd  Average Speed  Time    Time    Time  Current
Dload  Upload  Total  Spent    Left  Speed
101  1934  101  1934    0    0  3184      0 --:--:-- --:--:-- --:--:--  7136
或者用下面的方式
curl -O ftp://xukai:test@192.168.242.144:21/www/focus/enhouse/index.php
  % Total    % Received % Xferd  Average Speed  Time    Time    Time  Current
                                Dload  Upload  Total  Spent    Left  Speed
100 87518  100 87518    0    0  2312k      0 --:--:-- --:--:-- --:--:-- 11.5M

通过ftp上传

curl -T xukai.php ftp://xukai:test@192.168.242.144:21/www/focus/enhouse/
  % Total    % Received % Xferd  Average Speed  Time    Time    Time  Current
                                Dload  Upload  Total  Spent    Left  Speed
100 87518    0    0  100 87518      0  2040k --:--:-- --:--:-- --:--:-- 8901k

用法收集

快速用法(配合sed/awk/grep)

$curl http: //mydomain.net

下载保存

$curl http://mydomain.net > index.html
$curl -o index.html http://mydomain.net
$curl -O http://mydomain.net/target.tar.gz

GET

$curl http://www.yahoo.com/login.cgi?user=nickname&password=12345

POST

$curl -d "user=nickname&password=12345" http://www.yahoo.com/login.cgi

POST 文件

$curl -F upload= $localfile  -F $btn_name=$btn_value http://mydomain.net/~zzh/up_file.cgi

通过代理

$curl -x 123.45.67.89:1080 -o page.html http://mydomain.net

保存cookie

$curl -x 123.45.67.89:1080 -o page1.html -D cookie0001.txt http://mydomain.net

使用cookie

$curl -x 123.45.67.89:1080 -o page1.html -D cookie0002.txt -b cookie0001.txt http://mydomain.net

模仿浏览器

$curl -A "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)" -x123.45.67.89:1080 -o page.html -D cookie0001.txt http://mydomain.net

伪造referer

$curl -A "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)" -x123.45.67.89:1080 -e"mail.yahoo.com" -o page.html -D cookie0001.txt http://mydomain.net

高级下载功能

循环下载

$curl -O http://mydomain.net/~zzh/screen[1-10].JPG

循环(匹配)下载

$curl -O http://mydomain.net/~{zzh,nick}/[001-201].JPG  # >like zzh/001.JPG

循环(引用)下载

$curl -o #2_#1.jpg http://mydomain.net/~{zzh,nick}/[001-201].JPG # like >001_zzh.jpg

断点续传

$curl -c -O http://mydomain.net/~zzh/screen1.JPG

分块下载

$curl -r  0 -10240  -o "zhao.part1"  http://mydomain.net/~zzh/zhao1.mp3 &\
$curl -r 10241 -20480  -o "zhao.part1"  http://mydomain.net/~zzh/zhao1.mp3 &\
$curl -r 20481 -40960  -o "zhao.part1"  http://mydomain.net/~zzh/zhao1.mp3 &\
$curl -r 40961 - -o  "zhao.part1"  http://mydomain.net/~zzh/zhao1.mp3
...
$cat zhao.part* > zhao.mp3

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值