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:
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.
-np
. Nếu chúng ở trên một máy chủ khác, bạn sẽ cần --span-host
.
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
-H
tắ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.
Đố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 -
-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).