Làm cách nào để sử dụng Wget để tải xuống tất cả hình ảnh vào một thư mục, từ một URL?


133

Tôi đang sử dụng wget để tải xuống tất cả các hình ảnh từ một trang web và nó hoạt động tốt nhưng nó lưu trữ thứ bậc ban đầu của trang web với tất cả các thư mục con và vì vậy các hình ảnh được rải rác xung quanh. Có cách nào để nó chỉ tải xuống tất cả các hình ảnh vào một thư mục không? Cú pháp tôi đang sử dụng tại thời điểm này là:

wget -r -A jpeg,jpg,bmp,gif,png http://www.somedomain.com

Câu trả lời:


194

Thử cái này:

wget -nd -r -P /save/location -A jpeg,jpg,bmp,gif,png http://www.somedomain.com

Dưới đây là một số thông tin:

-ndngăn chặn việc tạo một hệ thống phân cấp thư mục (tức là không có thư mục ).

-rcho phép truy xuất đệ quy. Xem Tải về đệ quy để biết thêm thông tin.

-P đặt tiền tố thư mục nơi tất cả các tệp và thư mục được lưu vào.

-Athiết lập danh sách trắng để chỉ truy xuất các loại tệp nhất định. Chuỗi và mẫu được chấp nhận và cả hai có thể được sử dụng trong danh sách được phân tách bằng dấu phẩy (như đã thấy ở trên). Xem các loại tệp để biết thêm thông tin.


5
Điều này đã không thực sự làm việc cho tôi. Vị trí lưu của tôi là "." và nó đã sao chép toàn bộ hệ thống phân cấp trang web ở đó.
Butussy Butkus

2
@BriptButkus Có vẻ như bạn cần phải loay hoay thêm một chút với -Atùy chọn chấp nhận , xem tài liệu Wget về các loại tệp . Ngoài ra, nếu bạn đang tải xuống thư mục hiện tại, bạn có thể xóa -Ptùy chọn tiền tố thư mục . Nếu bạn đang tải xuống một loại tệp duy nhất, chẳng hạn như chỉ jpg, hãy sử dụng một cái gì đó như wget -r -A.jpg http://www.domain.com. Nhìn vào các ví dụ nâng cao mà tài liệu Wget cung cấp.
Jon

Thêm -nd vào ở trên làm cho nó hoạt động. Bạn cũng có thể chỉ định nhiều cờ -A, chẳng hạn như-A "*foo*" -A "*bar*"
Yablargo

1
Đừng quên sử dụng --level=infhoặc --level=9999999999wgetcó khả năng phá hoại công việc do mức độ sâu đệ quy tối đa mặc định là 5.
dùng619271

127
wget -nd -r -l 2 -A jpg,jpeg,png,gif http://t.co
  • -nd: không có thư mục (lưu tất cả các tệp vào thư mục hiện tại; -P directorythay đổi thư mục đích)
  • -r -l 2: đệ quy cấp 2
  • -A: tiện ích mở rộng được chấp nhận
wget -nd -H -p -A jpg,jpeg,png,gif -e robots=off example.tumblr.com/page/{1..2}
  • -H: máy chủ span (wget không tải xuống các tệp từ các tên miền hoặc tên miền phụ khác nhau theo mặc định)
  • -p: trang cần thiết (bao gồm các tài nguyên như hình ảnh trên mỗi trang)
  • -e robots=off: thực thi lệnh robotos=offnhư thể nó là một phần của .wgetrctập tin. Điều này sẽ tắt loại trừ robot, điều đó có nghĩa là bạn bỏ qua robot.txt và thẻ meta của robot (bạn nên biết hàm ý này đi kèm, hãy cẩn thận).

Ví dụ: Nhận tất cả .jpgcác tệp từ danh sách thư mục mẫu:

$ wget -nd -r -l 1 -A jpg http://example.com/listing/


9

Hãy thử cái này:

wget -nd -r -P /save/location/ -A jpeg,jpg,bmp,gif,png http://www.domain.com

và đợi cho đến khi nó xóa tất cả thông tin bổ sung


Nó không làm việc cho tôi. wget -nd -r -P /Users/duraiamuthan/Downloads/images/ -A jpeg,jpg,bmp,gif,png http://www.forbes.com/profile/mark-zuckerberg/
Vivo

5

Theo trang man, cờ -P là:

Tiền tố -P --directory-prefix = prefix Đặt tiền tố thư mục thành tiền tố. Tiền tố thư mục là thư mục nơi tất cả các tệp và thư mục con khác sẽ được lưu vào, tức là đỉnh của cây truy xuất. Mặc định là. (thư mục hiện tại).

Điều này có nghĩa là nó chỉ xác định đích nhưng nơi lưu cây thư mục. Nó không san phẳng cây vào một thư mục . Như đã đề cập trước khi cờ -nd thực sự làm điều đó.

@Jon trong tương lai sẽ có ích khi mô tả những gì cờ làm để chúng tôi hiểu cách thức hoạt động của một cái gì đó.


2

Các giải pháp được đề xuất là hoàn hảo để tải xuống các hình ảnh và nếu nó đủ để bạn lưu tất cả các tệp trong thư mục bạn đang sử dụng. Nhưng nếu bạn muốn lưu tất cả các hình ảnh trong một thư mục được chỉ định mà không sao chép toàn bộ cây phân cấp của trang web, hãy thử thêm "cut-dirs" vào dòng do Jon đề xuất.

wget -r -P /save/location -A jpeg,jpg,bmp,gif,png http://www.boia.de --cut-dirs=1 --cut-dirs=2 --cut-dirs=3

trong trường hợp này, các cut-dir sẽ ngăn wget tạo thư mục con cho đến mức độ sâu thứ 3 trong cây phân cấp trang web, lưu tất cả các tệp trong thư mục bạn đã chỉ định. Bạn có thể thêm nhiều 'cut-dirs' với số lượng cao hơn nếu bạn đang đối phó với các trang web có cấu trúc sâu.


-7

wget tiện ích lấy các tệp từ World Wide Web (WWW) bằng các giao thức được sử dụng rộng rãi như HTTP, HTTPS và FTP. Tiện ích Wget là gói có sẵn miễn phí và giấy phép theo Giấy phép GPL GNU. Tiện ích này có thể được cài đặt bất kỳ Hệ điều hành nào giống Unix bao gồm cả Windows và MAC OS. Đây là một công cụ dòng lệnh không tương tác. Tính năng chính của Wget là sự mạnh mẽ. Nó được thiết kế theo cách sao cho nó hoạt động trong các kết nối mạng chậm hoặc không ổn định. Wget tự động bắt đầu tải xuống ở nơi nó bị tắt trong trường hợp có vấn đề về mạng. Cũng tải tập tin đệ quy. Nó sẽ tiếp tục cố gắng cho đến khi tập tin được lấy hoàn toàn.

Cài đặt wget trong máy linux sudo apt-get install wget

Tạo một thư mục mà bạn muốn tải tập tin. sudo mkdir myimages cd myimages

Nhấp chuột phải vào trang web và ví dụ nếu bạn muốn vị trí hình ảnh nhấp chuột phải vào hình ảnh và sao chép vị trí hình ảnh. Nếu có nhiều hình ảnh thì hãy làm theo những điều dưới đây:

Nếu có tất cả 20 hình ảnh để tải xuống từ web cùng một lúc, phạm vi bắt đầu từ 0 đến 19.

wget http://joindiaspora.com/img {0..19} .jpg


2
Câu trả lời của bạn giải thích wget là gì và cách sử dụng nó để tải xuống các hình ảnh được đánh số liên tục ... không liên quan đến câu hỏi ban đầu.
Alastair
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.