有並行的wget嗎?類似 fping 但只能下載?

有並行的wget嗎?類似 fping 但只能下載?

我只找到了 puf (並行 URL 獲取器),但我無法讓它從文件中讀取 url;就像是

 puf < urls.txt

也不行。

伺服器上安裝的作業系統是Ubuntu。

答案1

使用GNU 平行,

$ 並行-j${工作}wget < urls.txt

xargs來自GNU 查找工具,

$ xargs -n 1 -P${工作}wget < urls.txt

其中是您希望允許同時運行${jobs}的最大數量(設定為在 中每行獲得一次呼叫)。如果沒有/ ,將一次運行與 CPU 核心一樣多的作業(這對於網路 IO 的限制不一定有意義),並且一次運行一個。wget-n1wgeturls.txt-j-Pparallelwgetxargs

一項不錯的功能parallelxargs將同時執行的作業的輸出分開,但如果您不關心這一點,則xargs更有可能預先安裝。

答案2

答案3

您可以使用 Python 和 pycurl 函式庫來實作。 pycurl 函式庫具有「multi」接口,它實現了自己的偶數循環,可實現多個同時連接。

然而,該介面與 C 類似,因此與其他更“Pythonic”的程式碼相比有點麻煩。

我為它編寫了一個包裝器,在其之上建立了一個更完整的類似瀏覽器的客戶端。您可以以此為例。請參閱pycopia.WWW.client模組。 HTTPConnectionManager 包裝了多介面。

答案4

GNU Parallel 手冊頁的一部分包含並行遞歸 wget 的範例。

https://www.gnu.org/software/parallel/man.html#example-breadth-first-parallel-web-crawler-mirrorer

HTML 下載兩次:一次用於提取鏈接,一次用於下載到磁碟。其他內容僅下載一次。

如果您不需要遞歸性,ephemient 的答案似乎很明顯。

相關內容