Làm cách nào để tải xuống tất cả các liên kết đến tệp .zip trên một trang web nhất định bằng wget / curl?


83

Một trang chứa các liên kết đến một tập hợp các tệp .zip, tất cả đều mà tôi muốn tải xuống. Tôi biết điều này có thể được thực hiện bằng wget và curl. Nó được thực hiện như thế nào?

Câu trả lời:


125

Lệnh là:

wget -r -np -l 1 -A zip http://example.com/download/

Ý nghĩa tùy chọn:

-r,  --recursive          specify recursive download.
-np, --no-parent          don't ascend to the parent directory.
-l,  --level=NUMBER       maximum recursion depth (inf or 0 for infinite).
-A,  --accept=LIST        comma-separated list of accepted extensions.

16
Các -nd(không thư mục) cờ là thuận tiện nếu bạn không muốn bất kỳ thư mục phụ được tạo ra (ví dụ, tất cả các file sẽ nằm trong thư mục gốc).
Steve Davis

1
Làm cách nào để điều chỉnh giải pháp này để nó đi sâu hơn từ trang đã cho? Tôi đã thử -l 20, nhưng nó sẽ dừng lại ngay lập tức.
Cờ lê

2
Nếu các tệp không nằm trong cùng thư mục với URL bắt đầu, bạn có thể cần phải loại bỏ -np. Nếu chúng ở trên một máy chủ khác, bạn sẽ cần --span-host.
Dan

84

Giải pháp trên không làm việc cho tôi. Đối với tôi chỉ cái này hoạt động:

wget -r -l1 -H -t1 -nd -N -np -A.mp3 -erobots=off [url of website]

Ý nghĩa tùy chọn:

-r            recursive
-l1           maximum recursion depth (1=use only this directory)
-H            span hosts (visit other hosts in the recursion)
-t1           Number of retries
-nd           Don't make new directories, put downloaded files in this one
-N            turn on timestamping
-A.mp3        download only mp3s
-erobots=off  execute "robots.off" as if it were a part of .wgetrc


Vâng cảm ơn! Tôi không nhớ nó đến từ đâu, chỉ nằm trong kịch bản của tôi.
K.-Michael Aye,

không biết xin lỗi. đặt một câu hỏi mới! ;)
K.-Michael Aye

1
+1 cho công -Htắc. Đây là những gì đã ngăn câu trả lời đầu tiên (đó là những gì tôi đã thử trước khi xem xét SO) hoạt động.
Alex

Tôi nhận được lỗi "Đối số bắt buộc đối với tùy chọn dài cũng bắt buộc đối với tùy chọn ngắn" với lỗi này. :(
François Leblanc

6

Đối với các tình huống khác với một số phép thuật song song, tôi sử dụng:

curl [url] | grep -i [filending] | sed -n 's/.*href="\([^"]*\).*/\1/p' |  parallel -N5 wget -
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.