我對 mysite.com/img/ 目錄的訪問被阻止。
然而,該目錄中的所有圖像都採用n.jpg
其中 n 是第 n 個圖像的形式。
我的訪問mysite.com/img/n.jpg
未被阻止
無論如何我可以保存圖像1-500(mysite.com/img/1.jpg
到mysite.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
如果您不想全部下載,請輸入中止!