Cách sao chép toàn bộ trang web vào máy tính của bạn bằng wget

Tác giả Security+, T.Tư 07, 2024, 02:08:21 CHIỀU

« Chủ đề trước - Chủ đề tiếp »

0 Thành viên và 2 Khách đang xem chủ đề.

Bạn muốn lưu toàn bộ trang web vào PC của mình? Không có gì.

  • Bạn có thể sử dụng wget để tải xuống toàn bộ trang web để truy cập ngoại tuyến.
  • wget là một công cụ dòng lệnh có sẵn cho Linux, Windows và MacOS.
  • Nó có thể được sử dụng thay cho các công cụ khác như cURL, HTTrack, WebCopy và SiteSucker.


Tải xuống toàn bộ trang web rất hữu ích nếu bạn muốn có bản sao văn bản, hình ảnh và nội dung khác trên đó, đề phòng trường hợp tác giả xóa nó hoặc trang web bị tắt. Tuy nhiên, các trình duyệt web không bao gồm chức năng này. Đây là cách tải xuống toàn bộ trang web bằng công cụ wget.

1. Trước khi bạn bắt đầu

Trước khi bắt đầu, hãy đảm bảo bạn có đủ dung lượng đĩa để lưu trang bạn muốn tải xuống. Một số trang web có nhiều trang và nhiều nội dung có thể tăng lên nhanh chóng, vì vậy hãy ghi nhớ những gì bạn sẽ tải xuống để không bị hết dung lượng. Nếu bạn đang sử dụng máy tính xách tay, hãy đảm bảo bạn đã cắm vào ổ cắm điện vì việc tải xuống hàng nghìn tệp có thể mất một lúc.

Nếu đang dùng Windows, bạn cần cài đặt Hệ thống con Windows cho Linux (WSL) để có quyền truy cập vào wget.

Ngoài ra, hãy hiểu rằng nhiều trang web hiện đại được tạo động, nghĩa là chúng xử lý dữ liệu trên máy chủ của mình để tạo ra các trang thay đổi khi nội dung mới được thêm vào hoặc khi bạn làm mới trang. Việc tải xuống một trang web hoặc trang sẽ tạo ra ảnh chụp nhanh của trang web đó tại thời điểm đó, vì vậy, bạn sẽ cần tải xuống lại trang web đó nếu muốn có bản sao cập nhật.

2. Cách sao chép toàn bộ trang web cục bộ bằng Wget

Wget là một công cụ dòng lệnh để tải dữ liệu từ web. Nó được cài đặt mặc định trên Ubuntu (điều này cũng có nghĩa là WSL) và Fedora. Nếu bạn đang sử dụng bản phân phối dựa trên Arch, bạn sẽ cần cài đặt nó. Nếu bạn đang dùng macOS, wget có sẵn thông qua MacPorts.

Nếu đang dùng Linux hoặc MacOS, bạn cần mở cửa sổ Terminal. Nếu bạn đang sử dụng WSL trên Windows, hãy khởi chạy bất kỳ bản phân phối Linux nào bạn muốn sử dụng.

Bạn có thể xác nhận rằng wget đã được cài đặt bằng cách chạy:

Mã nguồn [Chọn]
wget --help
Nếu wget có sẵn trên hệ thống của bạn, lệnh sẽ trả về thông tin về lệnh wget.

Bây giờ, bạn đã sẵn sàng để bắt đầu tải xuống. Đây là lệnh để tải xuống toàn bộ trang web:

Mã nguồn [Chọn]
wget -mpEk https://vietnetwork.vn
Lệnh này sẽ cố gắng lấy mọi thứ có thể từ trang web tại   Đăng nhập để xem liên kết, quét tất cả các liên kết trên trang đầu tiên, tải xuống các trang được liên kết đó và mọi thứ trên đó, sau đó tiếp tục đi qua các trang được liên kết từ các trang đó.

Đây là ý nghĩa của từng cờ lệnh (các chữ cái theo sau dấu gạch ngang trong lệnh wget ở trên):

  • -m cho phép một số tùy chọn định cấu hình wget để phản chiếu trang web, bao gồm kiểm tra dấu thời gian và độ sâu đệ quy vô hạn
  • -p yêu cầu wget lấy tất cả các yêu cầu cần thiết của trang, chẳng hạn như hình ảnh, phương tiện, bảng định kiểu và tệp JavaScript
  • -E điều chỉnh phần mở rộng tệp của các tệp đã tải xuống để khớp với phần mở rộng tệp trên máy chủ
  • -k chuyển đổi các liên kết trong các trang đã lưu để trỏ đến các bản sao cục bộ của bạn, để trang web ngoại tuyến của bạn có thể được điều hướng hoàn toàn mà không cần kết nối internet

Bạn sẽ biết trang web đang được tải xuống thành công khi bạn thấy kết quả giống như sau:

Mã nguồn [Chọn]
$ wget -mpEk https://vietnetwork.vn
--2024-04-05 10:00:00-- https://vietnetwork.vn/
Resolving example.com (example.com)... 93.184.216.34
Connecting to vietnetwork.vn (vietnetwork.vn)|93.184.216.34|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Saving to: ‘example.com/index.html’
vietnetwork.vn/index.html [ <=> ] 1.07K --.-KB/s in 0s
2024-04-05 10:00:01 (68.7 MB/s) - &lsquo;vietnetwork.vn/index.html&rsquo; saved [1096]

Lưu ý rằng mặc dù đây là bản tải xuống đệ quy nhưng chỉ các liên kết từ trang web được chỉ định mới được tải xuống. Các trang trên các trang web khác sẽ vẫn trực tuyến và cần có kết nối Internet để xem.

Bạn có thể xem danh sách đầy đủ tất cả các cờ lệnh wget và chức năng của chúng trong hướng dẫn sử dụng wget.

Hãy nhớ rằng, quá trình này có thể mất một chút thời gian và không có cách nào thực sự để ước tính thời gian tải xuống các trang web lớn, vì vậy, thỉnh thoảng bạn nên kiểm tra tiến trình để đảm bảo rằng mọi thứ vẫn đang tiến triển.

3. Còn việc tải xuống chỉ một trang thì sao?

Nếu bạn muốn tải xuống một trang web, trình duyệt web của bạn có thể thực hiện điều đó theo quy trình dễ dàng hơn nhiều: chỉ cần đi tới menu Tệp rồi nhấp vào nút "Lưu" (từ ngữ có thể hơi khác đối với trình duyệt của bạn, trên Firefox đó là "Lưu trang dưới dạng...").

Nếu bạn muốn sử dụng wget để tải xuống một trang, hãy chạy lệnh sau:

Mã nguồn [Chọn]
wget -pk https://vietnetwork.vn
Điều này bỏ qua các tùy chọn yêu cầu wget tải xuống các trang theo cách đệ quy cũng như điều chỉnh các tiện ích mở rộng và liên kết.

4. Tải xuống trang web để truy cập ngoại tuyến

Tải xuống toàn bộ trang web rất hữu ích trong nhiều trường hợp, bao gồm:

  • Sao lưu blog của bạn trong trường hợp máy chủ web của bạn ngừng hoạt động
  • Lưu trữ các trang web cho mục đích lịch sử (như lưu trang web của các thành viên trong gia đình cho dự án lịch sử gia đình của bạn)
  • Lưu các trang web và mọi thứ trên đó để đọc khi đi nghỉ (không phải nơi nào cũng có Internet tốt!)

5. Bạn truy cập trang web bạn đã tải xuống bằng cách nào?

Trang web bạn tải xuống bằng wget sẽ được lưu dưới dạng tệp HTML trên PC của bạn. Nếu bạn đã sử dụng WSL, bạn sẽ cần truy cập các tệp WSL của mình thông qua File Explorer.

Trong ví dụ của chúng tôi, tệp được đặt tại "\\wsl.localhost\Ubuntu-22.04\home\example" vì chúng tôi đã sử dụng Ubuntu 22.04 và tên người dùng Linux của chúng tôi là "example". Wget sẽ lưu các thư mục vào bất kỳ thư mục nào bạn đang hoạt động trong Terminal khi chạy lệnh, trừ khi bạn chỉ định đường dẫn khác theo cách thủ công.

Các tệp HTML có thể được mở bằng bất kỳ trình duyệt nào, mặc dù có những chương trình khác cũng có thể làm được điều đó, nếu bạn thích một trong những chương trình đó.

6. Các công cụ khác để tải xuống nội dung web để sử dụng ngoại tuyến

Mặc dù quên một trong những cách phổ biến nhất để tải xuống nội dung web, nhưng có những cách khác mà bạn có thể sử dụng nếu có yêu cầu khác hoặc không muốn xử lý dòng lệnh.

  • cURL là một công cụ dòng lệnh miễn phí khác có thể được sử dụng để tải xuống toàn bộ trang web
  • HTTrack là một công cụ Windows cung cấp giao diện đồ họa để tải xuống toàn bộ trang web, nếu bạn không thoải mái khi sử dụng dòng lệnh
  • Cyotek WebCopy cũng cung cấp GUI để tải xuống toàn bộ trang web và bao gồm nhiều tùy chọn có thể định cấu hình cũng như các quy tắc để loại trừ nội dung được tải xuống
  • Scrapy và BeautifulSoup là các thư viện Python có thể tải xuống toàn bộ trang web nhưng dành cho các nhà phát triển Python
  • SiteSucker cung cấp giao diện đồ họa thân thiện để tải xuống các trang web cho MacOS và có sẵn trong App Store
  • Webscrapbook là một tiện ích mở rộng của Firefox hoặc Chrome có thể lưu trữ toàn bộ trang web để đọc sau, đồng thời cho phép bạn chú thích và chỉnh sửa các trang
  • Offline Explorer rất mạnh mẽ và có thể tải xuống nội dung trang web mà các công cụ khác gặp khó khăn nhưng nó đắt tiền

Dù lý do bạn muốn sao chép toàn bộ trang web vào máy tính của mình là gì thì bây giờ bạn đã biết cách thực hiện! Nếu bạn dự định đọc ngoại tuyến thì một thiết bị đọc sách điện tử phù hợp là điều bắt buộc phải có.