我想用wget下载以下18个html文件:
http://www.ted.com/talks/quick-list?sort=date&order=desc&page=18
http://www.ted.com/talks/quick-list?sort=date&order=desc&page=17
...
http://www.ted.com/talks/quick-list?sort=date&order=desc&page=1
无论page=
之后发生什么,它总是会下载列表的第一页。我是否必须逃避网址中的某些字符?怎么样?
答案 0 :(得分:41)
&
是大多数shell环境中的特殊字符,您可以使用双引号引用URL以将整个内容作为参数传递给wget
:
wget "http://www.ted.com/talks/quick-list?sort=date&order=desc&page=18"
答案 1 :(得分:3)
将您的网址列表存储在一个文件中(每个网址都在一个单独的行中!!):
echo "http://www.ted.com/talks/quick-list?sort=date&order=desc&page=18
http://www.ted.com/talks/quick-list?sort=date&order=desc&page=17
...
" > wget_filelist.txt
调用wget来检索内容:
wget -i wget_filelist.txt
答案 2 :(得分:1)
特殊情况:wget "URL"
格式仍然存在问题,即使它解决了&
的问题,也无法传递!
符号。
解决方案:URL的单引号而不是双引号将解决此问题,例如:
wget 'https://www.itu.int/rec/dologin_pub.asp?lang=e&id=T-REC-G.798-201712-I!!PDF-E&type=items'
如上面的示例所示,它对我有用,其中同时包含&
和!
符号。我不确定这是否是所有平台的例外解决方案(例如,官方POSIX shell)。
奖金:此外,我们可以使用wget -c 'URL'
,这样一来如果失败,就无需从头开始。