Wget 這樣的實用程式可下載 mysite.com/img/ 目錄中的所有圖像

Wget 這樣的實用程式可下載 mysite.com/img/ 目錄中的所有圖像

我對 mysite.com/img/ 目錄的訪問被阻止。

然而,該目錄中的所有圖像都採用n.jpg其中 n 是第 n 個圖像的形式。

我的訪問mysite.com/img/n.jpg未被阻止

無論如何我可以保存圖像1-500(mysite.com/img/1.jpgmysite.com/img/500.jpg)嗎?

我使用的是ubuntu 11.10

答案1

最簡單的解決方案可能是使用 bash 大括號擴展

wget http://mysite.com/img/{1..500}.jpg

也可以選擇執行循環,允許您在每個請求之間等待一段時間。

for n in $(seq 1 500); do
  wget http://mysite.com/img/${n}.jpg
  sleep 0.1
done

(以上可以直接在shell中運作。)

答案2

還有另一種方法可以做到這一點wget,我已成功地在一個網站上使用了該方法,您應該能夠針對其他網站修改以下說明。它涉及生成 url 列表,然後將該列表提供給wget.

1) 舉個例子,假設您想下載所有 63 份 pdf 雜誌合一雜誌(一本 Ubuntu 雜誌),但您的下載管理器無法一次下載全部內容。所以找到關聯第一個 pdf 檔案並快速檢查其他雜誌連結是否採用相同的 url 格式。

2) 有了第 1 部分所獲得的知識,我們現在可以使用腳本來產生 url。下面的腳本運行一個until 循環,我已經對其進行了修改(歸功於其發起者)。您可以透過在該部分中放置雜誌數量until [ $i = 63 ]並在其後放置正確的 url 來修改此腳本echo,並確保 位於"$i"要回顯的 url 的正確部分中,以便它隨著循環的每次運行而變化。產生 URL,然後將其附加到文字檔案中 - 這在腳本運行時瞬間發生,並且設定起來並不像聽起來那麼複雜!

將腳本保存在文字編輯器中,使其可執行並運行它;當您想從某個網站下載時,請按照上述修改它不同的網站比我的例子。

#!/bin/bash
   i=0
   until [ $i = 63 ] ; do
    i=$(($i+1))
    echo "http://dl.fullcirclemagazine.org/issue"$i"_en.pdf" >> url.txt
done 

3)最後,假設url.txt在目前工作目錄中,執行:

wget -i url.txt  

如果您想將下載保存到其他地方,請在-P ~/MyDirectory後面添加url.txt

它確實有效 - 如果您嘗試一下,ctrl c如果您不想全部下載,請輸入中止!

相關內容