Làm cách nào để tải xuống toàn bộ thư mục và thư mục con bằng wget?


143

Tôi đang cố tải xuống các tệp cho một dự án bằng cách sử dụng wget, vì máy chủ SVN cho dự án đó không chạy nữa và tôi chỉ có thể truy cập các tệp thông qua trình duyệt. Các URL cơ sở cho tất cả các tệp giống nhau

http://abc.tamu.edu/projects/tzivi/reposeective/revutions/2/raw/tzivi/ *

Làm cách nào tôi có thể sử dụng wget(hoặc bất kỳ công cụ tương tự nào khác) để tải xuống tất cả các tệp trong kho lưu trữ này, trong đó thư mục "tzivi" là thư mục gốc và có một số tệp và thư mục con (tối đa 2 hoặc 3 cấp) trong đó?


3
Bạn không thể làm điều đó nếu máy chủ không có trang web với danh sách tất cả các liên kết đến các tệp bạn cần.
Eddy_Em

1
Bạn có biết tên của các tập tin?
Karoly Horvath

không tôi không biết tên của tất cả các tệp. Tôi đã thử wget với tùy chọn đệ quy nhưng nó cũng không hoạt động. Đó là vì máy chủ không có bất kỳ tệp index.html nào liệt kê tất cả các liên kết bên trong.
code4fun

Bạn đã thử tùy chọn phản chiếu của wget?
Tomasz Nguyễn

Câu trả lời:


193

Bạn có thể sử dụng cái này trong shell:

wget -r --no-parent http://abc.tamu.edu/projects/tzivi/repository/revisions/2/raw/tzivi/

Các thông số là:

-r     //recursive Download

--no-parent // Don´t download something from the parent directory

Nếu bạn không muốn tải xuống toàn bộ nội dung, bạn có thể sử dụng:

-l1 just download the directory (tzivi in your case)

-l2 download the directory and all level 1 subfolders ('tzivi/something' but not 'tivizi/somthing/foo')  

Và như thế. Nếu bạn chèn không có -ltùy chọn, wgetsẽ sử dụng -l 5tự động.

Nếu bạn chèn một -l 0bạn, bạn sẽ tải xuống toàn bộ Internet, vì wgetsẽ theo mọi liên kết mà nó tìm thấy.


19
Tuyệt vời, để đơn giản hóa cho người đọc tiếp theo: wget -r -l1 --no-parent http://www.stanford.edu/~boyd/cvxbook/cvxbook_additional_exercises/là câu trả lời cho tôi. Cảm ơn câu trả lời của bạn.
đẳng cấu

2
Tôi đã thử lệnh trên để lấy tất cả các tệp từ http://websitename.com/wp-content/uploads/2009/05nhưng tất cả những gì tôi nhận được là một index.htmltệp không có gì. Tôi không thể hình dung những gì tôi đã bỏ lỡ.
Vivek Todi

@up: Lưu ý rằng wget theo các liên kết, vì vậy bạn cần có một danh sách thư mục;)

11
Tôi biết điều này khá cũ. Nhưng điều tôi cũng thấy hữu ích là công -e robots=offtắc. ;)
Matthias W.

2
Tại sao bạn không xóa "Tôi quên điều gì đó quan trọng" và chỉ sửa câu trả lời ???
1271772

16

Bạn có thể sử dụng cái này trong một cái vỏ:

wget -r -nH --cut-dirs=7 --reject="index.html*" \
      http://abc.tamu.edu/projects/tzivi/repository/revisions/2/raw/tzivi/

Các thông số là:

-r recursively download

-nH (--no-host-directories) cuts out hostname 

--cut-dirs=X (cuts out X directories)



1

bạn cũng có thể sử dụng lệnh này:

wget --mirror -pc --convert-links -P ./your-local-dir/ http://www.your-website.com

để bạn có được bản sao chính xác của trang web bạn muốn tải xuống


1

Liên kết này chỉ cho tôi câu trả lời tốt nhất:

$ wget --no-clobber --convert-links --random-wait -r -p --level 1 -E -e robots=off -U mozilla http://base.site/dir/

Làm việc như người ở.


-1

Những công việc này:

wget -m -np -c --no-check-certificate -R "index.html*" "https://the-eye.eu/public/AudioBooks/Edgar%20Allan%20Poe%20-%2"
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.