Hầu hết người dùng sẽ tải file xuống PC bằng trình duyệt web của họ. Tuy nhiên, có một vấn đề với phương pháp này — nó không đặc biệt hiệu quả. Nếu bạn cần tạm dừng quá trình tải xuống hoặc nếu bạn bị mất kết nối, có thể bạn sẽ cần phải bắt đầu tải xuống lại từ đầu. Bạn cũng có thể đang làm việc với Python hoặc mã khác bằng dòng lệnh và muốn tải xuống trực tiếp từ command.
Đó là lúc các công cụ như Wget xuất hiện. Công cụ dòng lệnh này có một số tính năng hữu ích, hỗ trợ tải xuống đệ quy và tiếp tục tải xuống cho phép bạn tải xuống các file đơn lẻ (hoặc toàn bộ trang web) trong một lần.
Lệnh Wget phổ biến trên Linux và các hệ điều hành dựa trên Unix khác, nhưng nó cũng có sẵn cho người dùng Windows. Dưới đây, chúng tôi sẽ giải thích cách cài đặt và sử dụng Wget để tải xuống bất kỳ nội dung nào bạn muốn online từ CMD trên Windows.
Cài đặt GNU Wget trên Windows
Wget (ít nhất là về tên) có sẵn trên Windows 10 và 11 thông qua terminal PowerShell. Tuy nhiên, phiên bản Wget này không giống với công cụ GNU Wget mà bạn sử dụng trên PC Linux. Thay vào đó, phiên bản này chỉ đơn giản là bí danh cho lệnh PowerShell có tên Invoke-WebRequest.
Invoke-WebRequest hoạt động giống như Wget, nhưng nó là một công cụ hoàn toàn khác, khó sử dụng và khó hiểu hơn nhiều. Thay vào đó, bạn sẽ được phục vụ tốt hơn bằng cách cài đặt Wget cho Windows, một phiên bản được biên dịch của cùng một công cụ có sẵn cho người dùng Linux, bằng cách sử dụng các bước bên dưới.
1. Tải xuống file thiết lập Wget cho Windows từ trang web Wget . Bạn sẽ cần thực hiện việc này bằng trình duyệt web của mình.
2. Chạy file cài đặt Wget cho Windows . Sau khi tải xuống xong file thiết lập Wget, hãy chạy file thiết lập và làm theo hướng dẫn trên màn hình để hoàn tất cài đặt.
3. Cập nhật file Wget.exe (tùy chọn) . Trình cài đặt Wget được đóng gói với một phiên bản khá cũ của file nhị phân Wget. Nếu bạn gặp khó khăn khi tải xuống file do lỗi chứng chỉ SSL, bạn nên tải xuống wget.exe mới nhất cho kiến trúc của mình từ trang web này và lưu nó vào thư mục cài đặt Wget (thường là C:\Program Files (x86)\GnuWin32\bin) . Bước này là tùy chọn nhưng rất được khuyến khích.
4. Mở Start Menu, tìm kiếm environment variables và nhấp vào open . Sau khi quá trình cài đặt hoàn tất, hãy sử dụng công cụ tìm kiếm trong Start Menu để tìm kiếm các biến môi trường, sau đó nhấp vào Mở. Bạn cần thực hiện việc này để cho phép bạn sử dụng lệnh ‘wget’ từ dòng lệnh mà không cần tham chiếu vị trí của nó mỗi khi bạn muốn chạy nó.
5. Nhấp vào Environment Variables trong cửa sổ System Properties.
6. Chọn Path và nhấp vào Edit trong User hoặc System variables.
7. Nhấp vào nút New và nhập thư mục chứa file nhị phân (.exe) Wget cho Windows . Theo mặc định, đây phải là C:\Program Files (x86)\GnuWin32\bin.
8. Lưu các thay đổi . Khi bạn hoàn tất, hãy nhấp vào OK trong mỗi menu và thoát System Properties.
9. Mở Start Menu, gõ cmd và nhấn Open . Thao tác này sẽ khởi chạy một Command Prompt mới. Bạn cũng có thể sử dụng ứng dụng Terminal mới hơn, miễn là bạn chuyển sang sử dụng shell nhắc lệnh.
10. Gõ wget –version và nhấn Enter . Nếu Wget được cài đặt đúng cách, bạn sẽ thấy phiên bản GNU Wget được trả về trong Command Prompt.
Thay vào đó, nếu muốn chạy Wget từ terminal PowerShell, bạn sẽ cần chạy file trực tiếp từ thư mục cài đặt của nó (ví dụ: C:\Program Files (x86)\GnuWin32\bin\wget.exe).
Tải file hàng loạt bằng Wget
Khi bạn đã cài đặt GNU Wget và đã định cấu hình các biến môi trường để có thể khởi chạy nó một cách chính xác, bạn sẽ có thể sử dụng nó để bắt đầu tải xuống các file và trang web.
Chúng tôi đã sử dụng tên miền và đường dẫn file mẫu trong các ví dụ bên dưới. Bạn sẽ cần thay thế đường dẫn này bằng đường dẫn chính xác tới file (hoặc các file) mà bạn muốn tải xuống.
- Gõ wget -h để xem danh sách đầy đủ các lệnh. Điều này sẽ cung cấp cho bạn danh sách đầy đủ các tùy chọn mà bạn có thể sử dụng với Wget.
wget -h
- Tải xuống một file bằng cách sử dụng wget <url> . Thay thế <url> bằng đường dẫn đến file trên máy chủ HTTP, HTTPS hoặc FTP. Bạn cũng có thể tham khảo trực tiếp tên miền của trang web hoặc trang web để tải xuống trang cụ thể đó (không có bất kỳ nội dung nào khác).
quên ví dụ.com
- Lưu bằng tên file khác bằng cách sử dụng -O . Sử dụng tùy chọn -O, bạn sẽ có thể lưu file bằng một tên file khác. Ví dụ: wget -O <tên file> <url>, trong đó <tên file> là tên file bạn đã chọn.
wget -O example.html example.com
- Lưu vào một thư mục khác bằng cách sử dụng -P . Nếu bạn muốn lưu vào thư mục khác ngoài thư mục hiện tại, hãy sử dụng tùy chọn -P. Ví dụ: wget -P <path> <url>.
wget -PC:\folder example.com
- Sử dụng –continue hoặc -c để tiếp tục các tập tin . Nếu bạn muốn tiếp tục tải xuống một phần, hãy sử dụng tùy chọn -c để tiếp tục tải xuống, miễn là bạn đang ở trong cùng thư mục. Ví dụ: wget -c <url>.
wget -c example.com
- Tải xuống nhiều tập tin theo thứ tự . Nếu bạn muốn tải xuống nhiều file, hãy thêm từng URL vào lệnh Wget. Ví dụ: wget <url1> <url2>, v.v.
wget example.com tomshardware.com
- Tải xuống nhiều file bằng file văn bản có -i . Sử dụng tùy chọn -i, bạn có thể tham chiếu đến một file văn bản chứa danh sách URL để tải xuống một số lượng lớn file. Giả sử mỗi URL nằm trên một dòng mới, Wget sẽ tải xuống nội dung từ mỗi URL theo trình tự. Ví dụ: wget -i <file.txt> <url>.
quên -i urls.txt
- Giới hạn tốc độ tải xuống bằng cách sử dụng –limit-rate . Nếu bạn muốn giới hạn mức sử dụng băng thông, bạn có thể giới hạn tốc độ tải xuống bằng tùy chọn –limit-rate. Ví dụ: wget –limit-rate=1M <url> sẽ giới hạn tốc độ tải xuống ở 1 megabyte mỗi giây, trong khi wget –limit-rate=10K <url> sẽ giới hạn ở 10 kilobyte mỗi giây.
wget –limit-rate=10K example.com
- Sử dụng -w hoặc –wait để đặt khoảng thời gian tạm dừng sau mỗi lần tải xuống . Nếu bạn đang tải xuống nhiều file, việc sử dụng -w có thể giúp phân tán các yêu cầu bạn đưa ra và giúp hạn chế mọi khả năng tải xuống bị chặn. Ví dụ: wget -w 10 <url1> <url2> để chờ 10 giây.
wget -w 10 example.com tomshardware.com
- Đặt giới hạn thử lại bằng cách sử dụng -t hoặc –tries . Nếu quá trình tải xuống không thành công, wget sẽ sử dụng giá trị -t để xác định số lần tải xuống sẽ thử lại trước khi dừng. Giá trị mặc định là 20 lần thử lại. Nếu file bị thiếu hoặc nếu kết nối bị từ chối thì giá trị này sẽ bị bỏ qua và Wget sẽ chấm dứt ngay lập tức.
wget -t 5 example.com
- Lưu nhật ký bằng cách sử dụng -o hoặc -a. Bạn có thể lưu dữ liệu nhật ký của mình vào file văn bản bằng cách sử dụng -o (để luôn tạo file nhật ký mới) hoặc -a (để nối vào file hiện có). Ví dụ: wget -o <file.txt> <url>.
- Bỏ qua lỗi SSL bằng cách sử dụng –no-check-certificate . Nếu bạn gặp sự cố khi tải xuống từ máy chủ web có chứng chỉ SSL và bạn đã cập nhật cài đặt Wget của mình, hãy bỏ qua hoàn toàn việc kiểm tra chứng chỉ SSL bằng cách sử dụng –no-check-certificate để cho phép tải xuống (trong hầu hết các trường hợp). Bạn chỉ nên thực hiện việc này đối với những nội dung tải xuống từ những vị trí mà bạn hoàn toàn tin tưởng. Ví dụ: wget –no-check-certificate example.com.
wget –no-check-certificate https://example.com
Đảm bảo sử dụng lệnh wget -h hoặc wget –help để xem danh sách đầy đủ các tùy chọn có sẵn cho bạn. Nếu bạn gặp rắc rối với Wget, hãy đảm bảo giới hạn số lần thử lại và đặt giới hạn chờ cho mỗi lần tải xuống mà bạn thử.
Sử dụng Wget để tải xuống đệ quy
Một trong những tính năng hữu ích nhất của Wget là khả năng tải xuống đệ quy. Thay vì chỉ tải xuống một file duy nhất, nó sẽ cố tải xuống toàn bộ thư mục chứa các file liên quan.
Ví dụ: nếu bạn chỉ định một trang web, nó sẽ tải xuống nội dung được đính kèm với trang đó (chẳng hạn như hình ảnh). Tùy thuộc vào độ sâu đệ quy mà bạn chọn, nó cũng có thể tải xuống bất kỳ trang nào được liên kết với nó, cũng như nội dung trên các trang đó, bất kỳ trang nào được liên kết trên các trang đó, v.v.
Về mặt lý thuyết, Wget có thể chạy với mức độ sâu vô hạn, nghĩa là nó sẽ không bao giờ ngừng cố gắng đi xa hơn và sâu hơn với nội dung mà nó tải xuống. Tuy nhiên, từ quan điểm thực tế, bạn có thể thấy rằng hầu hết các máy chủ web sẽ chặn mức độ thu thập dữ liệu này, bạn có thể bị tạm khóa 24 giờ – vài ngày, vì vậy bạn cần phải thận trọng.
- Nhập wget -r hoặc wget –recursive để tải xuống đệ quy. Theo mặc định, mức độ sâu là năm. Ví dụ: wget -r <url>.
wget -r tomshardware.com
- Sử dụng -l hoặc –level để đặt mức độ sâu tùy chỉnh. Ví dụ: wget -r -l 10 <url>. Sử dụng wget -r -l inf <url> để có mức độ sâu vô hạn.
wget -r -l 10 tomshardware.com
- Sử dụng -k để chuyển đổi liên kết thành URL file cục bộ . Nếu bạn đang sao chép một trang web, Wget sẽ tự động chuyển đổi bất kỳ liên kết nào trong HTML để trỏ tới bản sao offline mà bạn đã tải xuống. Ví dụ: wget -r -k <url>.
wget -r -k tomshardware.com
- Sử dụng -p hoặc –page-essentials để tải xuống tất cả nội dung trang. Nếu bạn muốn một trang web tải xuống đầy đủ để tất cả hình ảnh, CSS và nội dung trang khác khả dụng offline, hãy sử dụng tùy chọn -p hoặc –page-Required. Ví dụ: wget -r -p <url>.
wget -r -p tomshardware.com
Để có danh sách đầy đủ các tùy chọn, hãy đảm bảo sử dụng lệnh wget –h . Bạn cũng nên chú ý tôn trọng bất kỳ trang web nào mà bạn đang chủ động tải xuống và cố gắng hết sức để hạn chế tải máy chủ bằng cách sử dụng các giới hạn chờ, thử lại và độ sâu.
Nếu bạn gặp khó khăn khi tải xuống do lỗi chứng chỉ SSL, đừng quên cập nhật file nhị phân Wget (wget.exe) lên phiên bản mới nhất.