为什么wget忽略url中的查询字符串?

Maj*_*our 25 shell command-line wget

我想用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
Run Code Online (Sandbox Code Playgroud)

无论发生什么page=,它总是下载列表的第一页.我是否必须逃避网址中的某些字符?怎么样?

hrb*_*str 49

&在大多数shell环境中是一个特殊字符,你可以使用双引号来引用URL,将整个内容作为参数传递给wget:

wget "http://www.ted.com/talks/quick-list?sort=date&order=desc&page=18"
Run Code Online (Sandbox Code Playgroud)


小智 5

  1. 将您的 URL 列表存储在一个文件中(每个 URL 在单独的行中!!):

    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

  2. 调用 wget 来检索东西:

    wget -i wget_filelist.txt