병렬 wget이 있습니까? fping과 비슷하지만 다운로드 전용인가요?

병렬 wget이 있습니까? fping과 비슷하지만 다운로드 전용인가요?

puf(Parallel URL fetcher)만 찾았지만 파일에서 URL을 읽을 수는 없었습니다. 같은 것

 puf < urls.txt

작동하지 않습니다.

서버에 설치된 운영 체제는 Ubuntu입니다.

답변1

사용GNU 병렬,

$ 병렬 -j${작업}wget <urls.txt

또는 xargs에서GNU Findutils,

$ xargs -n 1 -P${작업}wget <urls.txt

동시에 실행하도록 허용할 ${jobs}최대 개수는 어디에 있습니까( 에서 한 줄에 하나의 호출을 가져오도록 설정 ). /가 없으면 CPU 코어만큼 한 번에 많은 작업을 실행하며(네트워크 IO에 의한 바인딩에는 반드시 의미가 없음 ) 한 번에 하나씩 실행됩니다.wget-n1wgeturls.txt-j-Pparallelwgetxargs

한 가지 좋은 기능은 parallel동시에 xargs실행되는 작업의 출력을 분리하여 유지하는 것이지만, 신경 쓰지 않는다면 xargs사전 설치될 가능성이 더 높습니다.

답변2

답변3

Python과 pycurl 라이브러리를 사용하여 이를 구현할 수 있습니다. pycurl 라이브러리에는 여러 개의 동시 연결을 가능하게 하는 자체 짝수 루프를 구현하는 "다중" 인터페이스가 있습니다.

그러나 인터페이스는 C와 유사하므로 다른 "파이썬" 코드에 비해 약간 번거롭습니다.

나는 그 위에 보다 완전한 브라우저와 유사한 클라이언트를 구축하는 래퍼를 작성했습니다. 이를 예로 사용할 수 있습니다. 참조파이코피아.WWW.클라이언트기준 치수. HTTPConnectionManager는 다중 인터페이스를 래핑합니다.

답변4

GNU Parallel 매뉴얼 페이지의 일부에는 병렬 재귀 wget의 예가 포함되어 있습니다.

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

HTML은 두 번 다운로드됩니다. 한 번은 링크를 추출하고 한 번은 디스크에 다운로드합니다. 다른 콘텐츠는 한 번만 다운로드됩니다.

재귀성이 필요하지 않다면 ephemient의 대답이 분명해 보입니다.

관련 정보