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

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

puf(병렬 URL getter)만 찾았지만 다음과 같은 파일에서 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

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

답변2

답변3

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

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

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

답변4

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

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

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

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

관련 정보