Znalazłem tylko puf (moduł pobierania równoległego adresu URL), ale nie mogłem zmusić go do odczytania adresów URL z pliku; coś jak
puf < urls.txt
też nie działa.
System operacyjny zainstalowany na serwerze to Ubuntu.
ubuntu
wget
parallelism
Moonwalker
źródło
źródło
Odpowiedzi:
Używając GNU Parallel ,
lub
xargs
z GNU Findutils ,gdzie
${jobs}
jest maksymalna ilośćwget
chcesz, aby uruchomić jednocześnie (ustawienie-n
aby1
dostać jednąwget
inwokację w każdym wierszuurls.txt
). Bez-j
/-P
,parallel
będzie uruchamiać tyle zadań jednocześnie, ile rdzeni procesora (co niekoniecznie ma sens w przypadkuwget
ograniczenia przez sieciowe operacje we / wy) ixargs
będzie uruchamiane jedno po drugim.Jedną z fajnych funkcji, która
parallel
ma już za sobą,xargs
jest oddzielenie wyników równolegle uruchomionych zadań, ale jeśli nie przejmujesz się tym,xargs
istnieje większe prawdopodobieństwo, że zostaną wstępnie zainstalowane.źródło
jobs
zależy od wielu czynników: opóźnienia ścieżki, przepustowości ścieżki, zasad serwera zdalnego itp.robi to aria2.
http://sourceforge.net/apps/trac/aria2/wiki/UsageExample#Downloadfileslistedinafileconcurrently
Przykład: aria2c http://example.org/mylinux.iso
źródło
Możesz to zaimplementować za pomocą Pythona i biblioteki pycurl. Biblioteka pycurl ma interfejs „multi”, który implementuje własną parzystą pętlę, która umożliwia wiele jednoczesnych połączeń.
Jednak interfejs jest raczej podobny do C, a zatem nieco nieporęczny w porównaniu z innym, bardziej „Pythonowym” kodem.
Napisałem dla niego opakowanie, które tworzy na nim bardziej kompletnego klienta podobnego do przeglądarki. Możesz użyć tego jako przykładu. Zobacz moduł pycopia.WWW.client . HTTPConnectionManager otacza interfejs wielofunkcyjny.
źródło
Działa to, i nie będzie lokalne ani zdalne DoS, przy odpowiednich dostosowaniach:
źródło
Część strony podręcznika GNU Parallel zawiera przykład równoległego rekurencyjnego wgeta.
https://www.gnu.org/software/parallel/man.html#EXAMPLE:-Breadth-first-parallel-web-crawler-mirrorer
HTML jest pobierany dwukrotnie: raz w celu wyodrębnienia linków i raz w celu pobrania na dysk. Inne treści są pobierane tylko raz.
Jeśli nie potrzebujesz rekurencyjności, odpowiedź efemerii wydaje się oczywista.
źródło
Ofiary twojego pobierania równoległego nie będą rozbawione: oczekują, że jedno połączenie będzie obsługiwać każdego klienta, a skonfigurowanie kilku połączeń oznacza ogólnie mniej klientów. (Tj. Jest to uważane za niegrzeczne zachowanie).
źródło