Làm cách nào để tải xuống toàn bộ trang web để xem ngoại tuyến? Làm cách nào để lưu tất cả các tệp MP3 từ một trang web vào một thư mục trên máy tính của tôi? Làm cách nào để tải xuống các tệp nằm sau trang đăng nhập? Làm cách nào để tạo phiên bản nhỏ của Google?
Wget là một tiện ích miễn phí – có sẵn cho Mac , Windows và Linux (bao gồm) – có thể giúp bạn thực hiện tất cả những điều này và hơn thế nữa. Điều làm cho nó khác với hầu hết các trình quản lý tải xuống là wget
có thể theo các liên kết HTML trên trang web và tải xuống đệ quy các tệp. Đó cũng chính là công cụ mà một người lính đã sử dụng để tải xuống hàng nghìn tài liệu bí mật từ Mạng nội bộ của quân đội Mỹ mà sau đó được công bố trên trang web Wikileaks.
Nội dung
Trang web Spider với các lệnh Wget – 20 Ví dụ Thực tế
Wget cực kỳ mạnh mẽ, nhưng giống như hầu hết các chương trình dòng lệnh khác, rất nhiều tùy chọn mà nó hỗ trợ có thể gây khó chịu cho người dùng mới. Vì vậy, những gì chúng tôi có đây là một bộ sưu tập các lệnh wget mà bạn có thể sử dụng để hoàn thành các tác vụ phổ biến từ tải xuống các tệp đơn lẻ đến phản chiếu toàn bộ trang web. Sẽ rất hữu ích nếu bạn có thể đọc qua hướng dẫn sử dụng wget nhưng đối với những người bận rộn, những lệnh này đã sẵn sàng để thực thi.
1 . Tải xuống một tệp từ Internet
wget http://example.com/file.iso
2 . Tải xuống một tệp nhưng lưu nó cục bộ dưới một tên khác
wget ‐‐output-document=filename.html example.com
3 . Tải xuống tệp và lưu vào một thư mục cụ thể
wget ‐‐directory-prefix=folder/subfolder example.com
4 . Tiếp tục quá trình tải xuống bị gián đoạn đã bắt đầu trước đó bằng chính wget
wget ‐‐continue example.com/big.file.iso
5 . Tải xuống tệp nhưng chỉ khi phiên bản trên máy chủ mới hơn bản sao cục bộ của bạn
wget ‐‐continue ‐‐timestamping wordpress.org/latest.zip
6 . Tải xuống nhiều URL với wget. Đặt danh sách các URL trong một tệp văn bản khác trên các dòng riêng biệt và chuyển nó vào wget.
wget ‐‐input list-of-file-urls.txt
7 . Tải xuống danh sách các tệp được đánh số thứ tự từ máy chủ
wget http://example.com/images/{1..20}.jpg
8 . Tải xuống trang web có tất cả các nội dung – như bảng định kiểu và hình ảnh nội tuyến – được yêu cầu để hiển thị trang web ngoại tuyến một cách chính xác.
wget ‐‐page-requisites ‐‐span-hosts ‐‐convert-links ‐‐adjust-extension http://example.co
Phản chiếu các trang web với Wget
9 . Tải xuống toàn bộ trang web bao gồm tất cả các trang và tệp được liên kết
wget ‐‐execute robots=off ‐‐recursive ‐‐no-parent ‐‐continue ‐‐no-clobber http://example.com/
10 . Tải xuống tất cả các tệp MP3 từ một thư mục con
wget ‐‐level=1 ‐‐recursive ‐‐no-parent ‐‐accept mp3,MP3 http://example.com/mp3/
11 . Tải xuống tất cả hình ảnh từ một trang web trong một thư mục chung
wget ‐‐directory-prefix=files/pictures ‐‐no-directories ‐‐recursive ‐‐no-clobber ‐‐accept jpg,gif,png,jpeg http://example.com/images/
12 . Tải xuống các tài liệu PDF từ một trang web thông qua đệ quy nhưng ở trong các miền cụ thể.
wget ‐‐mirror ‐‐domains=abc.com,files.abc.com,docs.abc.com ‐‐accept=pdf http://abc.com/
13 . Tải xuống tất cả các tệp từ một trang web nhưng loại trừ một vài thư mục.
wget ‐‐recursive ‐‐no-clobber ‐‐no-parent ‐‐exclude-directories /forums,/support ht
Cố gắng tải xuống nội dung bị hạn chế
Wget có thể được sử dụng để tải xuống nội dung từ các trang web phía sau màn hình đăng nhập hoặc các trang web kiểm tra trình tham chiếu HTTP và chuỗi Tác nhân người dùng của bot để ngăn chặn việc quét màn hình.
14 . Tải xuống tệp từ các trang web kiểm tra Tác nhân người dùng và Người giới thiệu HTTP
wget ‐‐refer=http://google.com ‐‐user-agent="Mozilla/5.0 Firefox/4.0.1" http://nytimes.com
15 . Tải xuống tệp từ một trang web được bảo vệ bằng mật khẩu
wget ‐‐http-user=labnol ‐‐http-password=hello123 http://example.com/secret/file.zip
16 . Tìm nạp các trang nằm sau trang đăng nhập. Bạn cần thay thế uservà passwordbằng các trường biểu mẫu thực tế trong khi URL phải trỏ đến trang Gửi biểu mẫu (hành động).
wget ‐‐cookies=on ‐‐save-cookies cookies.txt ‐‐keep-session-cookies ‐‐post-data 'user=l
Truy xuất chi tiết tệp bằng wget
17 . Tìm kích thước của tệp mà không cần tải xuống (tìm ContentLength trong phản hồi, kích thước tính bằng byte)
wget ‐‐spider ‐‐server-response http://example.com/file.iso
18 . Tải xuống tệp và hiển thị nội dung trên màn hình mà không cần lưu cục bộ.
wget ‐‐output-document - ‐‐quiet google.com/humans.txt


19 . Biết ngày sửa đổi cuối cùng của một trang web (kiểm tra thẻ LastModified trong tiêu đề HTTP).
wget ‐‐server-response ‐‐spider http://www.labnol.org/
20 . Kiểm tra các liên kết trên trang web của bạn để đảm bảo rằng chúng đang hoạt động. Tùy chọn con nhện sẽ không lưu các trang cục bộ.
wget ‐‐output-file=logfile.txt ‐‐recursive ‐‐spider http://example.com
Wget – Làm thế nào để tốt với máy chủ?
Công cụ wget về cơ bản là một con nhện quét / đỉa các trang web nhưng một số máy chủ web có thể chặn những con nhện này bằng các tệp robots.txt. Ngoài ra, wget sẽ không theo các liên kết trên các trang web sử dụng thuộc tính rel = nofollow .
Tuy nhiên, bạn có thể buộc wget bỏ qua các lệnh robots.txt và nofollow bằng cách thêm công tắc ‐‐execute robots = off vào tất cả các lệnh wget của bạn. Nếu một máy chủ web đang chặn các yêu cầu wget bằng cách xem chuỗi Tác nhân Người dùng, bạn luôn có thể giả mạo điều đó bằng công tắc ‐‐user-agent = Mozilla.
Lệnh wget sẽ gây thêm căng thẳng cho máy chủ của trang web vì nó sẽ liên tục duyệt qua các liên kết và tải xuống tệp. Do đó, một trình quét tốt sẽ giới hạn tỷ lệ truy xuất và cũng bao gồm khoảng thời gian chờ giữa các yêu cầu tìm nạp liên tiếp để giảm tải máy chủ.
wget ‐‐limit-rate=20k ‐‐wait=60 ‐‐random-wait ‐‐mirror example.com
Trong ví dụ trên, chúng tôi đã giới hạn tốc độ băng thông tải xuống 20 KB / s và tiện ích wget sẽ đợi bất kỳ đâu trong khoảng 30 giây đến 90 giây trước khi truy xuất tài nguyên tiếp theo.
Cuối cùng, một câu đố nhỏ. Bạn nghĩ lệnh wget này sẽ làm gì?
wget ‐‐span-hosts ‐‐level=inf ‐‐recursive dmoz.org