Linux-curl命令


Linux-curl命令

Ax curl入门

支持http、https、ftp在内众多协议,还支持POST、cookie、认证、限速等特性。

curl现在文件输出到stdout,回显进度信息到stderr,要想避免显示进度,使用–silent

a 基本使用

1.将下载的文件输出到终端

curl URL

–silent不显示进度

-O 中URL中解析文件名

–progress 进度显示为#

b 高级选项

1.断点续传

curl URL -C offset

curl -C - URL 自动计算出继续的位置

2.用curl设置参照页字符串

curl --referer Referer_URL target_URL

参照页是标识用户是从哪个页面来到当前页面的。

3.用curl设置cookie

curl URL --cookie "user=slynux;pass=hack"

如果要将cookie另存为一个文件,使用–cookie-jar选项

curl URL --cookie-jar cookie_file

4.用curl设置用户代理字符串

curl URL --user-agent "Mozilla/5.0"

其它头部信息 -H 来传递

curl -H "Host:www.goold.com" -H "Accept-language: en" URL

5.限定curl可占用带宽

curl URL --limit-rate 20k

6.指定最大下载量

curl URL --max-filesize bytes

7.用curl进行认证

-u username:password指定用户名密码。

curl -u user:pass URL

不写密码则提示输入密码

8.只打印响应头部信息 –head or -I

curl -I URL

Bx 应用

a 爬取网页图片

传送门:爬取网页图片

b 跟踪网页变动

#!/bin/bash

if [ $# -ne 1 ];
then
    echo -e "$Usage: $0 URL\n"
    exit 1;
fi

first_time=0
# 非首次运行

if [ ! -e "last.html" ];
then
    first_time=1
    # 首次运行
fi

curl --silent $1 -o recent.html


if [ $first_time -ne 1 ];
then
    changes=$(diff -u last.html recent.html)
    if [ -n "$changes" ];
    then
        echo -e "Changes:\n"
        echo "$changes"
    else
        echo -e "\nWebsite has no changes"
    fi
else
    echo "[First run] Archiving.."

fi

cp recent.html last.html

第一次运行

然后我们进入网站根文件进行追加内容

再次运行脚本

Cx 参考

[1] 《Linux Shell脚本攻略》第二版 Shantanu Tushar\Sarath Lakshman 著


文章作者: Enomothem
版权声明: 本博客所有文章除特别声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Enomothem !
  目录