Nếu bạn sử dụng mở rộng dấu ngoặc với wget
, bạn có thể tìm nạp hình ảnh được đánh số liên tục một cách dễ dàng:
$ wget 'http://www.iqandreas.com/sample-images/100-100-color/'{90..110}'.jpg'
Rồi nó lấy 10 file đầu tiên đánh số 90.jpg
để 99.jpg
chỉ tốt, nhưng 100.jpg
trở đi trở lại một 404: File không tìm thấy lỗi (tôi chỉ có 100 hình ảnh được lưu trữ trên máy chủ). Các tệp không tồn tại này trở thành "vấn đề" hơn nếu bạn sử dụng phạm vi lớn hơn, chẳng hạn như {00..200}
với 100 tệp không tồn tại, nó làm tăng thời gian thực thi của tập lệnh và thậm chí có thể trở thành gánh nặng nhỏ (hoặc ít nhất là gây khó chịu) máy chủ.
Có cách nào wget
để dừng lại sau khi nhận được lỗi 404 đầu tiên không? (hoặc thậm chí tốt hơn, hai liên tiếp, trong trường hợp có một tệp bị thiếu trong phạm vi vì một lý do khác) Câu trả lời không cần sử dụng mở rộng dấu ngoặc; vòng lặp cũng tốt
1, 2 or even n failures
không phải là cách đúng đắn khi bạn biết[begin .. end]
các chỉ số. Tại sao bạn chỉ định[1..200]
phạm vi khi bạn biết chỉ có 100 hình ảnh[1..100]
. Tôi đoán bạn có thể thử GNUparallel
cho các yêu cầu đồng thời để tăng tốc quá trình.