Tôi chỉ tìm thấy puf (Trình tải URL song song) nhưng tôi không thể lấy nó để đọc các url từ một tệp; cái gì đó như
puf < urls.txt
cũng không hoạt động.
Hệ điều hành được cài đặt trên máy chủ là Ubuntu.
Tôi chỉ tìm thấy puf (Trình tải URL song song) nhưng tôi không thể lấy nó để đọc các url từ một tệp; cái gì đó như
puf < urls.txt
cũng không hoạt động.
Hệ điều hành được cài đặt trên máy chủ là Ubuntu.
Câu trả lời:
Sử dụng GNU Song song ,
$ song song -j $ {jobs} wget <urls.txt
hoặc xargs
từ GNU Findutils ,
$ xargs -n 1 -P $ {jobs} wget <urls.txt
nơi ${jobs}
được số lượng tối đa wget
bạn muốn cho phép chạy đồng thời (thiết -n
để 1
có được một wget
sự thỉnh nguyện mỗi dòng trong urls.txt
). Không có -j
/ -P
, parallel
sẽ chạy nhiều công việc cùng một lúc như các lõi CPU (điều này không nhất thiết có nghĩa là wget
bị ràng buộc bởi IO mạng) và xargs
sẽ chạy từng công việc một.
Một tính năng hay parallel
đã kết thúc xargs
là tách biệt đầu ra của các công việc đang chạy đồng thời, nhưng nếu bạn không quan tâm đến điều đó, xargs
nhiều khả năng sẽ được cài đặt sẵn.
jobs
phụ thuộc vào nhiều yếu tố: độ trễ đường dẫn, băng thông đường dẫn, chính sách máy chủ từ xa, v.v.
aria2 làm điều này.
http://sourceforge.net/apps/trac/aria2/wiki/UsageExample#Doadfileslistedinafileconc hiệnly
Ví dụ: aria2c http://example.org/mylinux.iso
Bạn có thể thực hiện điều đó bằng cách sử dụng Python và thư viện pycurl. Thư viện pycurl có giao diện "đa" thực hiện vòng lặp chẵn của chính nó cho phép nhiều kết nối đồng thời.
Tuy nhiên, giao diện khá giống C và do đó hơi cồng kềnh so với các mã khác, "Pythonic" hơn.
Tôi đã viết một trình bao bọc cho nó để xây dựng một ứng dụng khách giống như trình duyệt hoàn chỉnh hơn trên đầu trang. Bạn có thể sử dụng nó như một ví dụ. Xem mô-đun pycopia.WWW.client . HTTPConnectionManager kết thúc giao diện đa.
Một phần của trang man của GNU Parallel chứa một ví dụ về wget đệ quy song song.
https://www.gnu.org/software/abul/man.html#EXAMPLE:-Breadth-first-abul-web-crawler-mirrorer
HTML được tải xuống hai lần: Một lần để trích xuất các liên kết và một lần để tải xuống đĩa. Nội dung khác chỉ được tải xuống một lần.
Nếu bạn không cần câu trả lời đệ quy có vẻ rõ ràng.
Các nạn nhân của tải xuống paralell của bạn sẽ không thích thú: họ mong đợi một kết nối sẽ phục vụ mỗi khách hàng, thiết lập một số kết nối có nghĩa là ít khách hàng hơn. (Tức là, đây được coi là hành vi thô lỗ).