Cách sử dụng lệnh wget Linux để tải xuống các trang web và tệp

Tiện ích wget cho phép bạn tải xuống các trang web, tệp và hình ảnh từ web bằng cách sử dụng dòng lệnh Linux.

Bạn có thể sử dụng một lệnh wget riêng để tải xuống từ trang web hoặc thiết lập tệp đầu vào để tải xuống nhiều tệp trên nhiều trang web.

Theo hướng dẫn sử dụng trang wget có thể được sử dụng ngay cả khi người dùng đã đăng xuất khỏi hệ thống. Để làm điều này, bạn sẽ sử dụng lệnh nohup.

Tiện ích wget sẽ thử tải xuống lại ngay cả khi kết nối bị ngắt, tiếp tục từ nơi kết nối bị tắt nếu có thể khi kết nối trả về.

Bạn có thể tải xuống toàn bộ trang web bằng cách sử dụng wget và chuyển đổi các liên kết để trỏ đến các nguồn địa phương để bạn có thể xem một trang web ngoại tuyến.

Các tính năng của wget như sau:

Làm thế nào để tải về một trang web sử dụng wget

Đối với hướng dẫn này, tôi sẽ hướng dẫn bạn cách tải xuống blog cá nhân của mình.

wget www.everydaylinuxuser.com

Bạn nên tạo thư mục của riêng mình trên máy bằng lệnh mkdir và sau đó chuyển vào thư mục bằng lệnh cd .

Ví dụ:

mkdir dailylinuxuser
cd dailylinuxuser
wget www.everydaylinuxuser.com

Kết quả là một tệp index.html duy nhất. Ngày của riêng nó, tập tin này là khá vô ích khi nội dung vẫn được kéo từ Google và các hình ảnh và bảng định kiểu vẫn được giữ trên Google.

Để tải xuống trang web đầy đủ và tất cả các trang, bạn có thể sử dụng lệnh sau:

wget -r www.everydaylinuxuser.com

Thao tác này sẽ tải xuống các trang một cách đệ quy lên đến tối đa 5 cấp độ sâu.

5 cấp độ sâu có thể không đủ để có được mọi thứ từ trang web. Bạn có thể sử dụng công tắc -l để đặt số lượng các cấp bạn muốn đi như sau:

wget -r -l10 www.everydaylinuxuser.com

Nếu bạn muốn đệ quy vô hạn, bạn có thể sử dụng như sau:

wget -r -l inf www.everydaylinuxuser.com

Bạn cũng có thể thay thế inf bằng 0 có nghĩa là cùng một điều.

Vẫn còn một vấn đề nữa. Bạn có thể nhận tất cả các trang cục bộ nhưng tất cả các liên kết trong các trang vẫn trỏ đến vị trí ban đầu của chúng. Do đó, không thể nhấp vào cục bộ giữa các liên kết trên các trang.

Bạn có thể giải quyết vấn đề này bằng cách sử dụng nút chuyển đổi -k để chuyển đổi tất cả các liên kết trên các trang để trỏ đến tương đương được tải xuống cục bộ của chúng như sau:

wget -r -k www.everydaylinuxuser.com

Nếu bạn muốn có được một tấm gương hoàn chỉnh của một trang web, bạn có thể chỉ cần sử dụng công tắc sau đây để lấy đi sự cần thiết cho việc sử dụng các công tắc -r-k và -l.

wget -m www.everydaylinuxuser.com

Vì vậy, nếu bạn có trang web của riêng bạn, bạn có thể tạo một bản sao lưu hoàn chỉnh bằng cách sử dụng lệnh đơn giản này.

Chạy wget như một lệnh nền

Bạn có thể nhận được wget để chạy như là một lệnh nền để bạn có thể nhận được trên với công việc của bạn trong cửa sổ thiết bị đầu cuối trong khi các tập tin tải về.

Chỉ cần sử dụng lệnh sau:

wget -b www.everydaylinuxuser.com

Tất nhiên bạn có thể kết hợp các công tắc. Để chạy lệnh wget ở chế độ nền trong khi phản chiếu trang web, bạn sẽ sử dụng lệnh sau:

wget -b -m www.everydaylinuxuser.com

Bạn có thể đơn giản hóa điều này hơn nữa như sau:

wget -bm www.everydaylinuxuser.com

Ghi nhật ký

Nếu bạn đang chạy lệnh wget trong nền, bạn sẽ không thấy bất kỳ thông báo bình thường nào mà nó gửi tới màn hình.

Bạn có thể nhận được tất cả các tin nhắn được gửi đến một tệp nhật ký để bạn có thể kiểm tra tiến trình bất kỳ lúc nào bằng cách sử dụng lệnh đuôi .

Để xuất thông tin từ lệnh wget vào một tệp nhật ký, hãy sử dụng lệnh sau:

wget -o / path / to / mylogfile www.everydaylinuxuser.com

Ngược lại, tất nhiên, là không yêu cầu đăng nhập ở tất cả và không có đầu ra cho màn hình. Để bỏ qua tất cả các đầu ra sử dụng lệnh sau:

wget -q www.everydaylinuxuser.com

Tải xuống từ nhiều trang web

Bạn có thể thiết lập một tệp đầu vào để tải xuống từ nhiều trang web khác nhau.

Mở một tệp bằng trình chỉnh sửa yêu thích của bạn hoặc thậm chí là lệnh cat và chỉ cần bắt đầu liệt kê các trang web hoặc liên kết để tải xuống từ mỗi dòng của tệp.

Lưu tệp và sau đó chạy lệnh wget sau:

wget -i / path / to / inputfile

Ngoài việc sao lưu trang web của riêng bạn hoặc có thể tìm nội dung nào đó để tải xuống để đọc trên chuyến tàu, rất có thể bạn sẽ không muốn tải xuống toàn bộ trang web.

Bạn có nhiều khả năng tải xuống một URL có hình ảnh hoặc có thể tải xuống các tệp như tệp zip, tệp ISO hoặc tệp hình ảnh.

Với ý nghĩ đó, bạn không muốn phải nhập thông tin sau vào tệp đầu vào vì nó tốn thời gian:

Nếu bạn biết URL cơ sở luôn giống nhau, bạn chỉ có thể chỉ định thông tin sau trong tệp đầu vào:

Sau đó, bạn có thể cung cấp URL cơ sở như một phần của lệnh wget như sau:

wget -B http://www.myfileserver.com -i / path / to / inputfile

Thử lại tùy chọn

Nếu bạn đã thiết lập hàng đợi tệp để tải xuống trong tệp đầu vào và bạn để máy tính của mình chạy suốt đêm để tải xuống các tệp, bạn sẽ thấy khá khó chịu khi bạn đi xuống vào buổi sáng để thấy rằng tệp đã bị kẹt trong tệp đầu tiên và đã được thử lại cả đêm.

Bạn có thể chỉ định số lần thử lại bằng cách sử dụng công tắc sau:

wget -t 10 -i / path / đến / inputfile

Bạn có thể sử dụng lệnh trên kết hợp với công tắc -T cho phép bạn chỉ định thời gian chờ tính bằng giây như sau:

wget -t 10 -T 10 -i / path / đến / inputfile

Lệnh trên sẽ thử lại 10 lần và sẽ cố gắng kết nối trong 10 giây cho mỗi liên kết trong tệp.

Nó cũng khá khó chịu khi bạn đã tải về một phần 75% của một tập tin 4 gigabyte trên một kết nối băng thông rộng chậm chỉ cho kết nối của bạn để thả ra.

Bạn có thể sử dụng wget để thử lại từ nơi nó ngừng tải xuống bằng cách sử dụng lệnh sau:

wget -c www.myfileserver.com/file1.zip

Nếu bạn đang búa máy chủ, máy chủ có thể không thích nó quá nhiều và có thể chặn hoặc chỉ giết các yêu cầu của bạn.

Bạn có thể chỉ định khoảng thời gian chờ xác định khoảng thời gian chờ giữa mỗi lần truy xuất như sau:

wget -w 60 -i / path / đến / inputfile

Lệnh trên sẽ đợi 60 giây giữa mỗi lần tải xuống. Điều này rất hữu ích nếu bạn đang tải xuống rất nhiều tệp từ một nguồn duy nhất.

Một số máy chủ web có thể phát hiện tần suất tuy nhiên và sẽ chặn bạn. Bạn có thể làm cho khoảng thời gian chờ ngẫu nhiên để làm cho nó trông giống như bạn không sử dụng một chương trình như sau:

wget --random-wait -i / đường dẫn / đến / inputfile

Bảo vệ giới hạn tải xuống

Nhiều nhà cung cấp dịch vụ internet vẫn áp dụng giới hạn tải xuống cho việc sử dụng băng thông rộng của bạn, đặc biệt nếu bạn sống bên ngoài thành phố.

Bạn có thể muốn thêm một hạn ngạch để bạn không thổi giới hạn tải xuống đó. Bạn có thể làm điều đó theo cách sau:

wget -q 100m -i / path / đến / inputfile

Lưu ý rằng lệnh -q sẽ không hoạt động với một tệp duy nhất.

Vì vậy, nếu bạn tải xuống một tệp có dung lượng 2 gigabyte, sử dụng -q 1000m sẽ không dừng tải xuống tệp.

Hạn ngạch chỉ được áp dụng khi tải xuống đệ quy từ một trang web hoặc khi sử dụng tệp đầu vào.

Nhận thông qua bảo mật

Một số trang web yêu cầu bạn đăng nhập để có thể truy cập nội dung bạn muốn tải xuống.

Bạn có thể sử dụng các công tắc sau để chỉ định tên người dùng và mật khẩu.

wget --user = yourusername --password = yourpassword

Lưu ý trên một hệ thống đa người dùng nếu ai đó chạy lệnh ps, họ sẽ có thể nhìn thấy tên người dùng và mật khẩu của bạn.

Tùy chọn tải xuống khác

Theo mặc định, chuyển đổi -r sẽ đệ quy tải xuống nội dung và sẽ tạo các thư mục khi nó đi.

Bạn có thể tải tất cả các tệp xuống một thư mục bằng cách sử dụng công tắc sau:

wget -nd -r

Điều ngược lại là bắt buộc tạo các thư mục có thể đạt được bằng cách sử dụng lệnh sau:

wget -x -r

Cách tải xuống một số loại tệp nhất định

Nếu bạn muốn tải xuống đệ quy từ một trang web nhưng bạn chỉ muốn tải xuống một loại tệp cụ thể chẳng hạn như một tệp mp3 hoặc một hình ảnh chẳng hạn như png, bạn có thể sử dụng cú pháp sau:

wget -A "* .mp3" -r

Điều ngược lại là bỏ qua các tập tin nhất định. Có lẽ bạn không muốn tải xuống tệp thi hành. Trong trường hợp này, bạn sẽ sử dụng cú pháp sau:

wget -R "* .exe" -r

Cliget

Có một add-on của Firefox có tên là cliget. Bạn có thể thêm nó vào Firefox theo cách sau.

Truy cập https://addons.mozilla.org/en-US/firefox/addon/cliget/ và nhấp vào nút "thêm vào Firefox".

Nhấp vào nút cài đặt khi nó xuất hiện. Bạn sẽ phải khởi động lại Firefox.

Để sử dụng cliget, hãy truy cập trang hoặc tệp bạn muốn tải xuống và nhấp chuột phải. Một menu ngữ cảnh sẽ xuất hiện được gọi là cliget và sẽ có các tùy chọn để "copy to wget" và "copy to curl".

Nhấp vào tùy chọn "copy to wget" và mở cửa sổ dòng lệnh rồi nhấp chuột phải và dán. Lệnh wget thích hợp sẽ được dán vào cửa sổ.

Về cơ bản, điều này giúp bạn tiết kiệm phải tự mình gõ lệnh.

Tóm lược

Lệnh wget như một số lượng lớn các tùy chọn và chuyển mạch.

Nó là giá trị do đó đọc các trang hướng dẫn sử dụng cho wget bằng cách gõ như sau vào một cửa sổ thiết bị đầu cuối:

người đàn ông wget