如何使用wget将大量zip文件下载到url

时间:2016-05-12 23:29:17

标签: bash shell command-line wget

在网址here,我需要下载大量的zip文件并保存到test/files/downloads目录。我在提示

时使用了wget

wget -i http://bitly.com/nuvi-plz -P test/files/downloads

它将整个页面下载到目录中的一个文件中并开始下载每个zip文件但是然后为每个文件提供了一个404,看起来像

2016-05-12 17:12:28--  http://bitly.com/1462835080018.zip
Connecting to bitly.com|69.58.188.33|:80... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://bitly.com/1462835080018.zip [following]
--2016-05-12 17:12:28--  https://bitly.com/1462835080018.zip
Connecting to bitly.com|69.58.188.33|:443... connected.
HTTP request sent, awaiting response... 404 Not Found
2016-05-12 17:12:29 ERROR 404: Not Found.

如何让wget正确下载页面上的所有zip文件?

1 个答案:

答案 0 :(得分:1)

您需要从bit.ly获取重定向,然后下载所有文件。这真的很难看,但它有效:

wget http://bitly.com/nuvi-plz --server-response -O /dev/null 2>&1 | \
  awk '(NR==1){SRC=$3;} /^  Location: /{DEST=$2} END{ print SRC, DEST}' | sed 's|.*http|http|' | \
while read url; do 
  wget -A zip -r -l 1 -nd $url -P test/files/downloads
done

如果您使用直接链接,则可以使用:

wget -A zip -r -l 1 -nd http://feed.omgili.com/5Rh5AMTrc4Pv/mainstream/posts/ -P test/files/downloads