2014-10-20 33 views
16

我想使用wget下载以下18 HTML文件:为什么wget忽略url中的查询字符串?

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

你试过吗? http://www.ted.com/talks/quick-list?sort=date&desc&page=17 – saruftw 2014-10-20 21:13:02

+0

你在做“wget”http://www.ted.com/talks/quick-list?sort=date&order=desc&page= 18“'还是不使用双引号? – hrbrmstr 2014-10-20 21:18:44

+0

@rgbimbochamp我会试试看。有没有解释为什么应该解决这个问题呢? – 2014-10-20 21:23:25

回答

26

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

wget "http://www.ted.com/talks/quick-list?sort=date&order=desc&page=18" 
+0

如何使用{1..20}使用字符串下载一系列文件? – Neil 2016-03-07 16:41:21

3
  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