首页 > 代码库 > ​浏览网页下载文件命令(十七)

​浏览网页下载文件命令(十七)

下载工具:wget

浏览网页:curl,elinks,nslookup

13.1.wget

功能:非交互式网络下载

语法:wget [option]... [URL]...

常用选项:

启动:

-b,  --background         转入 后台运行

-V, –version                  打印wget版本

-h,help                        打印语法帮助

e, –execute=COMMAND   执行`.wgetrc’格式的命令

日志记录和输入文件:

-o,  --output-file=FILE      把记录写到FILE文件

-a, --append-output=FILE    把记录追加到FILE文件中

-d,  --debug              打印调试输出,会包含头信息

-v, –verbose              冗长模式(这是缺省设置)

-nv, –non-verbose          关掉冗长模式,但不是安静模式

-F, –force-html           把输入文件当作HTML格式文件对待

-B, –base=URL             将URL作为在-F -i参数指定的文件中出现的相对链接的前缀

-q,  --quiet              退出

-i,  --input-file=FILE      从文件中读取URL下载

–sslcertfile=FILE     可选客户端证书

–sslcertkey=KEYFILE   可选客户端证书的KEYFILE

 –egd-file=FILE        指定EGD socket的文件名

下载:

--bind-address=ADDRESS      设置绑定地址(主机名或IP,当本地有多个IP或名字时使用)

-t,  --tries=NUMBER                 设置链接重试次数(0 表示无限制)

-O, --output-document=FILE     把文档写到FILE文件中

-nc, --no-clobber                        跳过下载现有的文件

-c,  --continue                            断点续传

--progress=TYPE                      设置进度条(dot和bar)

-N, –timestamping                     不要重新下载文件除非比本地文件新

-S,  --server-response              打印服务器响应

--spider                                      不下载任何内容

-T, --timeout=SECONDS    设置相应超时时间(还有--dns-timeout、--connect-timeout和--read-timeout)

-w,  --wait=SECONDS     两次重试间隔等待时间

–random-wait            在下载之间等待0…2*WAIT秒

-Y, –proxy=on/off           打开或关闭代理

-Q, –quota=NUMBER           设置下载的容量限制

--limit-rate=RATE      限制下载速度

--user=USER         设置ftp和http用户名

--password=PASS       设置ftp和http密码

目录:

-nd –no-directories            不创建目录

-x, –force-directories         强制创建目录

-nH, –no-host-directories       不创建主机目录

-P, --directory-prefix=PREFIX  保存文件目录

–cut-dirs=NUMBER           忽略 NUMBER层远程目录

HTTP选项:

--http-user=USER         设置http用户名

--http-password=PASS   设置http密码

-C, –cache=on/off        允许/不允许服务器端的数据缓存 (一般情况下允许)

-E, –html-extension      将所有text/html文档以.html扩展名保存

 –ignore-length           忽略 `Content-Length’头域

--proxy-user=USER     设置代理用户名

--proxy-password=PASS  设置代理密码

--referer=URL       设置Referer

-s,--save-headers      保存头到文件

--default-page=NAME    改变默认页面名字,默认index.html

-U,--user-agent=AGENT  设置客户端信息

--no-http-keep-alive   禁用HTTP keep-alive(长连接)

--load-cookies=FILE    从文件加载cookies

--save-cookies=FILE    保存cookies到文件

--post-data=http://www.mamicode.com/STRING 使用POST方法,发送数据

FTP选项:

--ftp-user=USER      设置ftp用户名

--ftp-password=PASS    设置ftp密码

--no-passive-ftp      禁用被动传输模式

-nr, –dont-remove-listing   不移走 `.listing’文件

-g, –glob=on/off           打开或关闭文件名的 globbing机制

 –passive-ftp           使用被动传输模式 (缺省值).

 –active-ftp            使用主动传输模式

 –retr-symlinks         在递归的时候,将链接指向文件(而不是目录)

递归下载:

-r, --recursive       指定递归下载,慎用!

-l, --level=NUMBER     最大递归深度, (inf 或 0 代表无穷).

–delete-after       在现在完毕后局部删除文件

-k, –convert-links      转换非相对链接为相对链接

-K, –backup-converted   在转换文件X之前,将之备份为 X.orig

-m, –mirror             等价于 -r -N -l inf -nr.

-p, –page-requisites    下载显示HTML文件的所有图片


递归下载中的包含和不包含(accept/reject)

-A, --accept=LIST      逗号分隔下载的扩展列表

-R, --reject=LIST      逗号分隔不被下载的扩展列表

-D, --domains=LIST     逗号分隔被下载域的列表

--exclude-domains=LIST   排除不被下载域的列表

–follow-ftp                 跟踪HTML文档中的FTP链接

–follow-tags=LIST           分号分隔的被跟踪的HTML标签的列表

 -G, –ignore-tags=LIST           分号分隔的被忽略的HTML标签的列表

 -H, –span-hosts                 当递归时转到外部主机

 -L, –relative                   仅仅跟踪相对链接

 -I, –include-directories=LIST   允许目录的列表

 -X, –exclude-directories=LIST   不被包含目录的列表

 -np, –no-parent                  不要追溯到父目录

示例:

[root@localhost ~]# wget http://nginx.org/download/nginx-1.9.9.tar.gz  #下载单个文件到当前路径
--2017-06-12 00:02:08--  http://nginx.org/download/nginx-1.9.9.tar.gz
Resolving nginx.org... 206.251.255.63, 95.211.80.227, 2001:1af8:4060:a004:21::e3, ...
Connecting to nginx.org|206.251.255.63|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 887908 (867K) [application/octet-stream]
Saving to: “nginx-1.9.9.tar.gz”
 
100%[======================================>] 887,908      345K/s   in 2.5s   
 
2017-06-12 00:02:11 (345 KB/s) - “nginx-1.9.9.tar.gz” saved [887908/887908]
# wget -b  http://nginx.org/download/nginx-1.9.9.tar.gz    #放在后台下载
对于网络不稳定的用户使用-c和--tries参数,保证下载完成,并下载到指定目录:
[root@localhost ~]# wget -t 3 -c http://nginx.org/download/nginx-1.9.9.tar.gz -P down  ##对于网络不稳或者其他原因,使用-c 和--tries,保证下载完成,并下载到指定的路径
--2017-06-12 00:06:24--  http://nginx.org/download/nginx-1.9.9.tar.gz
Resolving nginx.org... 95.211.80.227, 206.251.255.63, 2001:1af8:4060:a004:21::e3, ...
Connecting to nginx.org|95.211.80.227|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 887908 (867K) [application/octet-stream]
Saving to: “down/nginx-1.9.9.tar.gz”
 
100%[======================================>] 887,908      364K/s   in 2.4s   
 
2017-06-12 00:06:28 (364 KB/s) - “down/nginx-1.9.9.tar.gz” saved [887908/887908]
[root@localhost scripts]#  wget http://www.baidu.com/index.html -O index.html   #下载内容到文件
--2017-06-12 11:16:23--  http://www.baidu.com/index.html
Resolving www.baidu.com... 14.215.177.38, 14.215.177.37
Connecting to www.baidu.com|14.215.177.38|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 2381 (2.3K) [text/html]
Saving to: “index.html”
100%[======================================================================================>] 2,381       --.-K/s   in 0s      
2017-06-12 11:16:23 (336 MB/s) - “index.html” saved [2381/2381]
[root@localhost scripts]# ls index.html 
index.html
[root@localhost scripts]# cat > url
https://www.baidu.com/index.html
^C
[root@localhost scripts]# wget -i url   #从文件读取url下载
--2017-06-12 11:18:48--  https://www.baidu.com/index.html
Resolving www.baidu.com... 14.215.177.38, 14.215.177.37
Connecting to www.baidu.com|14.215.177.38|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 2443 (2.4K) [text/html]
Saving to: “index.html.1”
 
100%[======================================================================================>] 2,443       --.-K/s   in 0s     
 
2017-06-12 11:18:49 (11.8 MB/s) - “index.html.1” saved [2443/2443]
 
FINISHED --2017-06-12 11:18:49--
Downloaded: 1 files, 2.4K in 0s (11.8 MB/s)


13.2.curl

功能:传递一个url

语法:curl [options] [URL...]

常用选项:

-A/--user-agent <agent string>   指定客户端信息

-b/--cookie <name=data>            从文件中读取cookie

 -C/--continue-at <offset>             断点续传

-c/--cookie-jar <file name>           把cookie保存到文件

-d/--data <data>                           使用POST方式发送数据

-D/--dump-header <file>              保存头信息到文件

--data-urlencode <data>               POST的数据URL编码

-e/--referer <URL>                         来源网址

-f/--fail                                             连接失败时不显示http错误

-F/--form <name=content>            指定POST数据的表单

--ftp-pasv                                         指定FTP连接模式PASV/EPSV

-H/--header <header>                    自定义头信息发送给服务器

-L/--location                                   遵循URL重定向,默认不处理

 -I/--head                                          查看HTTP头信息


-O/--remote-name                          使用远程服务器上名字写到本地

 -o/--output <file>                          输出到文件

  -P/--ftp-port <address>                指定FTP端口

-#/--progress-bar  显示bar进度条

-x,/--proxy[PROTOCOL://]HOST[:PORT]  使用代理

-U/--proxy-user <user:password>        代理用户名和密码

--connect-timeout  连接超时时间,单位秒

--retry NUM      连接重试次数

--retry-delay         两次重试间隔等待时间

-s/--silent              静默模式,不输出任何内容

-Y/--speed-limit  限制下载速率

-u/--user <user:password>指定http和ftp用户名和密码

-T/ --upload-file   上传文件

示例:

[root@localhost scripts]# curl www.baidu.com    #百度字符页面就展示在命令行上
<!DOCTYPE html>
[root@localhost scripts]# curl -o baidu.html www.baidu.com  #保存页面
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
103  2381  103  2381    0     0  41981      0 --:--:-- --:--:-- --:--:--  211k
[root@localhost scripts]# ls baidu.html 
baidu.html
[root@localhost scripts]# curl -s -o baidu.html www.baidu.com   #不输出下载信息
[root@localhost scripts]#
[root@localhost scripts]# curl -b cookies www.baidu.com              #使用cookie访问
# curl -u user:pass http://www.example.com                              #访问HTTP认证页面


13.3.elinks

功能:实现纯文本界面访问网页

语法:elinks(选项)(参数)

常用选项:

-anonymous:是否使用匿名帐号方式; 

-auto-submit:遇到的第一个表单是否自动提交; 

-config-dir:指定elinks指令运行时读取和写入自身的配置和运行状态的存放目录; 

-dump:将HTML文档以纯文本的方式打印到标准输出设备; 

-version:打印指令的版本信息;

 -h:打印帮助信息。

示例:

[root@localhost ~]# elinks -dump www.baidu.com
   Refresh: [1]/baidu.html?from=noscript
   Link: [2]百度搜索 (search)
   Link: [3]dns-prefetch
   Link: [4]dns-prefetch
   Link: [5]dns-prefetch
   Link: [6]dns-prefetch
   Link: [7]dns-prefetch
   Link: [8]dns-prefetch
   Link: [9]dns-prefetch
   Link: [10]dns-prefetch
   [11]到百度首页
   [12]_____________________ [13][ 百度一下 ]
   输入法
 
     * [14]手写
     * [15]拼音
     * 
     * [16]关闭

13.4.nslookup

功能:交互式查询Internet名称服务器,也就是查询DNS信息

语法:nslookup [-option] [name | -] [server]

示例:

[root@localhost ~]# nslookup
> www.baidu.com
Server:         114.114.114.114    #默认配置dns服务器
Address:        114.114.114.114#53
 
Non-authoritative answer:
www.baidu.com   canonical name = www.a.shifen.com.
Name:   www.a.shifen.com    #对应的百度dns
Address: 163.177.151.110  
Name:   www.a.shifen.com
Address: 163.177.151.109

本文出自 “烂笔头” 博客,请务必保留此出处http://lanbitou.blog.51cto.com/9921494/1934440

​浏览网页下载文件命令(十七)