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
-n
1
wget
urls.txt
-j
-P
parallel
wget
xargs
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의 대답은 분명해 보입니다.