如果wget中存在文件,请跳过下载的答案?说使用-nc,或者--no-clobber,但-nc不阻止发送HTTP请求和随后下载文件.如果文件已被完全检索,则在下载文件后它不会执行任何操作.无论如何,如果文件已存在,是否阻止发出HTTP请求?
我wget用Homebrew安装了1.16.3.运行下面的命令后,wget是这样说making HTTP request的已经存在,出现下载它,然后将每个文件说的一样:file already retrieved, nothing to do.
wget --user-agent='Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_4) AppleWebKit/600.7.12 (KHTML, like Gecko) Version/8.0.7 Safari/600.7.12' \
--tries=1 \
--no-clobber \
--continue \
--wait=0.3 \
--random-wait \
--adjust-extension \
--load-cookies cookies.txt \
--save-cookies cookies.txt \
--keep-session-cookies \
--recursive \
--level=inf \
--convert-links \
--page-requisites \
--reject=edit,logout,rate \
--domains=example.com,s3.amazonaws.com \
--span-hosts \
--exclude-directories=/admin \
http://example.com/
Run Code Online (Sandbox Code Playgroud)
小智 7
看来您使用的是不兼容的选项,我在 wget 1.16 linux 上收到以下警告:
$ wget --no-clobber --convert-links http://example.com
Both --no-clobber and --convert-links were specified, only --convert-links will be used.
Run Code Online (Sandbox Code Playgroud)
该-nc选项至少在wget 1.19.1中满足您的要求。
在我的服务器上,我有一个名为的文件index.html,其中包含指向a.html和的链接b.html。
$ wget -r -nc http://127.0.0.1:8000/
Run Code Online (Sandbox Code Playgroud)
服务器日志显示如下:
127.0.0.1 - - [23/Mar/2017 17:51:25] "GET / HTTP/1.1" 200 -
127.0.0.1 - - [23/Mar/2017 17:51:25] "GET /robots.txt HTTP/1.1" 404 -
127.0.0.1 - - [23/Mar/2017 17:51:25] "GET /a.html HTTP/1.1" 200 -
127.0.0.1 - - [23/Mar/2017 17:51:25] "GET /b.html HTTP/1.1" 200 -
Run Code Online (Sandbox Code Playgroud)
现在,我删除b.html并再次运行它:
$ rm 127.0.0.1\:8000/b.html
$ wget -r -nc http://127.0.0.1:8000/
Run Code Online (Sandbox Code Playgroud)
服务器日志显示如下:
127.0.0.1 - - [23/Mar/2017 17:51:38] "GET /robots.txt HTTP/1.1" 404 -
127.0.0.1 - - [23/Mar/2017 17:51:38] "GET /b.html HTTP/1.1" 200 -
Run Code Online (Sandbox Code Playgroud)
如您所见,仅发出了一个请求b.html。