qbit
  • 126

curl/wget/httppie 示例(qbit)

简介

curl 简介

  • cURL(Client URL) 于 1997 年首次发布。
  • 它最初命名为 urlget,然后在采用当前 cURL 名称之前变为 httpget。
# 名字变化
urlget -> httpget -> curl
  • 原作者 Daniel Stenberg 创建 cURL 是为了自动为 IRC 用户获取货币汇率。
  • curl 可以用于下载,但侧重于模拟各种 http 请求,与网站 API 交互。

wget 简介

  • wget 原名 geturl,于 1995 年年底开始开发。
  • wget 是 “World Wide Web” 和 “Get” 的结合,同时也隐含了软件的主要功能。当前它支持通过HTTP、HTTPS,以及FTP这三个最常见的TCP/IP协议协议下载。
  • wget 专注于下载,可以递归,支持断点

httpie 简介

  • HTTPie(读作 aitch-tee-tee-pie)是一个命令行 HTTP 客户端,拥有直观的界面,支持 JSON、语法高亮、下载功能、插件支持等特性。
  • HTTPie 采用Python 开发,底层用到了 Requests 和 Pygments 库。

Demonstration of HTTPie use

  • 与 curl 对比图

httpie2.png

实例

获取本机外网 IP

  • curl 获取本机外网 IP
curl ip.sb
# 更改 User-Agent
curl -v ip.sb --user-agent Mozilla
curl -v ip.sb -A Mozilla    # 简写
  • wget 获取本机外网 IP
我不擅长做这个
  • httpie 获取本机外网 IP
http -v ip.sb
# 更改 User-Agent
http -v ip.sb User-Agent:curl

文件下载

  • curl 文件下载
# -o 自定义文件名(o小写)
curl -o pie.gif https://httpie.org/static/img/httpie.gif
# -C 断点续传(C大写)
# -C, --continue-at <offset> Resumed transfer offset
# -C- 自动寻找断点
curl -C- -O https://httpie.org/static/img/httpie.gif
# -O 使用 URL 中的文件名
curl -O https://httpie.org/static/img/httpie.gif
# 限速下载
curl --limit-rate 50k -O https://httpie.org/static/img/httpie.gif
# 使用 http 代理
curl -O https://httpie.org/static/img/httpie.gif --proxy http://127.0.0.1:10809
curl -O https://httpie.org/static/img/httpie.gif -x http://127.0.0.1:10809  # 简写
# 使用 socks5 代理
curl -O https://httpie.org/static/img/httpie.gif -x socks5://127.0.0.1:10808   # 简写
curl -O https://httpie.org/static/img/httpie.gif --socks5 127.0.0.1:10808  # 另一种写法
  • wget 文件下载
# -c 断点续传(c小写)
wget -c https://httpie.org/static/img/httpie.gif
# -O 自定义文件名(O小写)
wget -O pie.gif https://httpie.org/static/img/httpie.gif
# 限速下载
wget --limit-rate=50k https://httpie.org/static/img/httpie.gif
# 使用 http 代理
# 截至 2019-12-31,wget 使用 socks 代理需要借助其他工具如 tsocks
wget -e "http_proxy=127.0.0.1:10809" https://httpie.org/static/img/httpie.gif
  • wget 打包下载网站
# --mirror
## Makes (among other things) the download recursive.
# --convert-links 
## Convert all the links (also to stuff like CSS stylesheets) to relative, so it will be suitable for offline viewing.
# --adjust-extension
## Adds suitable extensions to filenames (html or css) depending on their content-type.
# --page-requisites
## Download things like CSS style-sheets and images required to properly display the page offline.
# --no-parent
## When recursing do not ascend to the parent directory. It useful for restricting the download to only a portion of the site.
wget --mirror --convert-links --adjust-extension --page-requisites --no-parent http://example.org -P ./html
# 简写
wget -mkEpnp http://example.org -P ./html
  • httpie 文件下载
http -v -d https://httpie.org/static/img/httpie.gif
# 使用 http 代理
http -v -d https://httpie.org/static/img/httpie.gif --proxy=https:http://127.0.0.1:10809
# 须安装 pysocks: pip install pysocks
# proxy 参数,目标网站协议:代理协议://代理地址:代理端口
# 使用 socks5 代理
http -v -d https://httpie.org/static/img/httpie.gif --proxy=https:socks5://127.0.0.1:10808

qbit 个人感受

curl 最专业,httpie 最友好,wget 有个全站下载的特有功能。

qbit snap
阅读 1.2k

推荐阅读
qbit snap
用户专栏

开箱即用,拿走不谢。

203 人关注
101 篇文章
专栏主页
目录