2012-01-06 35 views
125

Cách sử dụng wget và nhận tất cả các tệp từ trang web?Làm thế nào để tải xuống tất cả các tệp (nhưng không phải HTML) từ một trang web bằng cách sử dụng wget?

tôi cần tất cả các file ngoại trừ các tập tin trang web như HTML, PHP, ASP, vv

+0

Thậm chí nếu bạn muốn tải về php, nó không thể sử dụng wget. Chúng tôi chỉ có thể nhận được HTML thô bằng cách sử dụng wget. Tôi đoán bạn biết lý do –

+0

** NB: ** Luôn luôn kiểm tra với 'wget --spider' trước và luôn thêm' -w 1' (hoặc nhiều '-w 5') để bạn không làm ngập người khác máy chủ. – isomorphismes

+0

Tôi làm cách nào để tải xuống tất cả các tệp pdf trong trang này? http://pualib.com/collection/pua-titles-a.html – Arturo

Trả lời

194

Để lọc cho phần mở rộng tập tin cụ thể:

wget -A pdf,jpg -m -p -E -k -K -np http://site/path/ 

Hoặc, nếu bạn thích tên tùy chọn dài:

wget --accept pdf,jpg --mirror --page-requisites --adjust-extension --convert-links --backup-converted --no-parent http://site/path/ 

này sẽ phản ánh trang web, nhưng các tập tin mà không jpg hoặc pdf mở rộng sẽ được tự động bị xóa.

+7

Nếu bạn chỉ muốn tải xuống các tệp không có kiến ​​trúc toàn bộ thư mục, bạn có thể sử dụng tùy chọn ** - nd **. – diabloneo

+1

Mỗi cờ nghĩa là gì? – Michelle

+0

Tôi nghĩ rằng '--accept' phân biệt chữ hoa chữ thường, vì vậy bạn phải thực hiện' --accept pdf, jpg, PDF, JPG' – Flimm

62
wget -m -p -E -k -K -np http://site/path/ 

man page sẽ cho bạn biết những tùy chọn nào.

wget sẽ chỉ theo liên kết, nếu không có liên kết đến tệp từ trang chỉ mục, thì wget sẽ không biết về sự tồn tại của nó và do đó không tải xuống. I E. nó sẽ giúp nếu tất cả các tập tin được liên kết đến trong các trang web hoặc trong các chỉ mục thư mục.

+0

Cảm ơn bạn đã trả lời :) Nó sao chép toàn bộ trang web và tôi chỉ cần tệp (ví dụ: txt, pdf , hình ảnh, vv) trong trang web – Aniruddhsinh

63

này tải về các trang web toàn bộ cho tôi:

wget --no-clobber --convert-links --random-wait -r -p -E -e robots=off -U mozilla http://site/path/ 
+14

+1 cho '-e robots = off'! Điều này cuối cùng đã khắc phục được vấn đề của tôi! :) Cảm ơn – NHDaly

+0

+1, đã làm chính xác những gì tôi muốn. Gương hoàn hảo – Anon343224user

+5

Tùy chọn '--random-wait' là thiên tài;) – poitroae

6

Bạn có thể thử:

wget --user-agent=Mozilla --content-disposition --mirror --convert-links -E -K -p http://example.com/ 

Ngoài ra bạn có thể thêm:

-A pdf,ps,djvu,tex,doc,docx,xls,xlsx,gz,ppt,mp4,avi,zip,rar 

để chấp nhận các phần mở rộng cụ thể, hoặc chỉ từ chối các tiện ích mở rộng cụ thể:

-R html,htm,asp,php 

hoặc để loại trừ các lĩnh vực cụ thể:

-X "search*,forum*" 

Nếu các tập tin bị bỏ qua đối với các robot (ví dụ công cụ tìm kiếm), bạn đã thêm thêm: -e robots=off

2

Trên các hệ thống Windows để có được wget bạn có thể

  1. tải Cygwin
  2. tải GnuWin32
15

Tôi đã cố gắng để tải về tệp zip được liên kết từ Omeka's themes page - tác vụ tương tự.Điều này làm việc cho tôi:

wget -A zip -r -l 1 -nd http://omeka.org/add-ons/themes/ 
  • -A: chỉ chấp nhận file zip
  • -r: recurse
  • -l 1: sâu một cấp (ví dụ, chỉ có tập tin liên kết trực tiếp từ trang này)
  • -nd: không tạo cấu trúc thư mục, chỉ cần tải xuống tất cả các tệp vào thư mục này.

Tất cả các câu trả lời với -k, -K, -E vv tùy chọn có lẽ đã không thực sự hiểu câu hỏi, như những người như đối với việc viết lại các trang HTML để tạo ra một cấu trúc địa phương, đổi tên file .php và vân vân. Không liên quan.

Để theo nghĩa đen có được tất cả các file trừ.html vv:

wget -R html,htm,php,asp,jsp,js,py,css -r -l 1 -nd http://yoursite.com 
+1

'-A' phân biệt chữ hoa chữ thường, vì vậy bạn sẽ phải thực hiện' -A zip, ZIP' – Flimm

4

Hãy thử điều này. Nó luôn luôn làm việc cho tôi

wget --mirror -p --convert-links -P ./LOCAL-DIR WEBSITE-URL 
2
wget -m -A * -pk -e robots=off www.mysite.com/ 

này sẽ tải về tất cả các loại tập tin cục bộ và trỏ đến chúng từ tập tin html và nó sẽ bỏ qua robot nộp

Các vấn đề liên quan