Tất cả các lệnh Wget bạn nên biết

Tất cả các lệnh Wget bạn nên biết


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 phía sau trang đăng nhập? Làm cách nào để xây dựng một 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 hoàn thành 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. Đó là cùng một công cụ mà một người lính đã sử dụng để tải xuống hàng ngàn tài liệu bí mật từ Intranet của quân đội Hoa Kỳ sau đó được xuất bản trên trang web Wikileaks.

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ể khiến người dùng mới sợ hãi. Do đó, những gì chúng tôi có ở đây là một tập hợp các lệnh wget mà bạn có thể sử dụng để thực hiện các tác vụ phổ biến từ tải xuống các tệp đơn lẻ để phản chiếu toàn bộ trang web. Nó sẽ giúp nếu bạn có thể đọc qua hướng dẫn wget nhưng đối với những linh hồn bận rộn, các 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 một tập tin và lưu nó trong một thư mục cụ thể

wget ‐‐directory-prefix=folder/subfolder example.com

4. Tiếp tục tải xuống bị gián đoạn trước đó bắt đầu bằng wget chính nó

wget ‐‐continue example.com/big.file.iso

5. Tải xuống một 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ó sang wget.

wget ‐‐input list-of-file-urls.txt

7. Tải xuống danh sách các tệp được đánh số liên tục từ máy chủ

wget http://example.com/images/{1..20}.jpg

8. Tải xuống một trang web với tất cả các tài sản - như bảng định kiểu và hình ảnh nội tuyến - được yêu cầu để hiển thị đúng trang web ngoại tuyến.

wget ‐‐page-requisites ‐‐span-hosts ‐‐convert-links ‐‐adjust-extension http://example.com/dir/file

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 nằm 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 http://example.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 http://example.com

14. Tải xuống các tệp từ các trang web kiểm tra User-Agent và HTTP Referer

wget ‐‐refer=http://google.com ‐‐user-agent="Mozilla/5.0 Firefox/4.0.1" http://nytimes.com

15. Tải xuống các tệp từ một trang web được bảo vệ bằng mật khẩu

wget ‐‐http-user=wikianow ‐‐http-password=hello123 http://example.com/secret/file.zip

16. Lấy các trang phía sau một trang đăng nhập. Bạn cần thay thế user và password bằ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=wikianow&password=123' http://example.com/login.php_ _wget ‐‐cookies=on ‐‐load-cookies cookies.txt ‐‐keep-session-cookies http://example.com/paywall

17. Tìm kích thước của tệp mà không cần tải xuống (tìm ContentLpm 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 một tập tin và hiển thị nội dung trên màn hình mà không lưu nó 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.wikianow.com/

20. Kiểm tra các liên kết trên trang web của bạn để đảm bảo rằng họ đang làm việc. Tùy chọn 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 để nó hoạt động tốt với máy chủ?

Công cụ wget về cơ bản là một con nhện 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 robot.txt. Ngoài ra, wget sẽ không theo 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 tệp robots.txt và các lệnh nofollow bằng cách thêm khóa chuyển đổi ‐‐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 nhìn vào chuỗi User Agent, bạn luôn có thể giả mạo điều đó với ‐‐user-agent=Mozilla.

Lệnh wget sẽ gây thêm lưu lượ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 các tệp. Do đó, một trình quét tốt sẽ giới hạn tốc độ 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 ở mức 20 KB/giây và tiện ích wget sẽ đợi ở bất kỳ đâu trong khoảng từ 30 đến 90 giây trước khi lấy 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

Xem thêm hướng dẫn các lệnh Wget:

Bạn có thể thích những bài đăng này