Cách chuyển đổi nhiều trang web thành PDF bằng Wget

Có nhiều công cụ trực tuyến, tiện ích mở rộng trình duyệt và plugin desktop để biến trang web thành PDF. Nếu thường xuyên sử dụng các công cụ này, bạn có thể gặp phải tình huống cần chuyển đổi nhiều liên kết trong một lần. Thực hiện việc này đối với từng liên kết một thật lãng phí thời gian và tẻ nhạt.

Bạn có thể tự động hóa tác vụ này thông qua một tiện ích dòng lệnh đơn giản có tên là Wget. Với sự trợ giúp của một vài script hoặc ứng dụng và công cụ này, bài viết sẽ chỉ cho bạn cách lưu nhiều trang web vào một file PDF.

Tại sao lại chọn Wget?

Wget là gói phần mềm miễn phí để tải xuống các file từ web. Nhưng nó cũng là một công cụ hoàn hảo để phản chiếu toàn bộ trang web vào máy tính. Dưới đây là những lý do vì sao nên chọn Wget:

  • Wget không cần tương tác, có nghĩa là nó có thể hoạt động ở chế độ nền và cho phép bạn truyền dữ liệu mà không yêu cầu sự hiện diện của bạn.
  • Wget hiểu cấu trúc thư mục của trang web. Wget có thể theo dõi các liên kết trong trang HTML, để tạo một phiên bản cục bộ của trang web từ xa. Trong quá trình này, nó cũng không can thiệp vào file robot.txt.
  • Wget thậm chí có thể hoạt động trong các kết nối mạng chậm hoặc không ổn định. Nếu máy chủ hỗ trợ thiết lập lại, nó sẽ tiếp tục thử lại cho đến khi toàn bộ file chuyển sang máy tính.
  • Wget hỗ trợ proxy server. Nó giúp giảm tải mạng, tăng tốc tiến trình truy xuất và cung cấp quyền truy cập đằng sau tường lửa.

Cài đặt Wget

Trên macOS

Cách nhanh nhất để cài đặt Wget là thông qua Homebrew. Homebrew là trình quản lý gói cho macOS, có nhiệm vụ cài đặt các ứng dụng và tiện ích Unix hữu ích. Tham khảo bài viết: Cách cài đặt và sử dụng wget trên Mac để biết thêm chi tiết. Sau đó, nhập:

brew install wget

Bạn sẽ nhận được tiến trình cài đặt tất cả các công cụ (nếu có) theo thời gian thực để Wget chạy trên máy Mac. Nếu bạn đã cài đặt Homebrew, hãy nhớ chạy brew upgrade để có phiên bản mới nhất của tiện ích này.

Trên Windows 10

Có nhiều phiên bản Wget có sẵn cho Windows 10. Hãy đi tới Eternally Board để tải xuống bản build 64 bit mới nhất. Đặt file thực thi trong một thư mục và sao chép nó vào ổ C:.

Đặt file thực thi trong một thư mục và sao chép nó vào ổ C:

Bây giờ, ta sẽ thêm đường dẫn Wget vào biến môi trường của hệ thống để chạy công cụ này từ bất kỳ thư mục nào. Điều hướng đến Control Panel > System và nhấp vào Advanced System Settings. Trong cửa sổ mở ra, bấm vào Environment Variables.

Trong cửa sổ mở ra, bấm vào Environment Variables

Chọn Path trong System Variables và nhấp vào Edit. Sau đó, nhấp vào nút New nằm ở góc trên bên phải của cửa sổ. Nhập C:\wget và nhấp vào OK.

Nhập C:\wget và nhấp vào OK

Mở Command Prompt và gõ wget-h để kiểm tra xem mọi thứ có hoạt động không. Trong PowerShell, gõ wget.exe -h để tải menu trợ giúp Wget.

Trong PowerShell, gõ wget.exe -h để tải menu trợ giúp Wget

Lưu các liên kết trong một file văn bản

Vì khi phải xử lý nhiều liên kết, việc dán từng liên kết là một nhiệm vụ khó khăn. Rất may, có các tiện ích mở rộng trình duyệt có thể giúp bạn hoàn thành nhiệm vụ này.

  • Link Klipper: Trích xuất tất cả các liên kết trên một trang web dưới dạng file CSV hoặc TXT. Bạn thậm chí có thể kéo một khu vực hình chữ nhật trên trang web để sao chép liên kết một cách có chọn lọc. Các file được lưu vào thư mục Download.

Link Klipper

  • Snap Links Plus: Tiện ích này cho phép bạn nắm bắt tất cả các yếu tố trên một trang và làm mọi thứ với chúng. Giữ nút chuột phải và kéo vùng chọn hình chữ nhật xung quanh các liên kết. Nhấn phím Ctrl và sao chép các liên kết vào clipboard.

Thiết lập một thư mục

Wget hoạt động giống như trình thu thập dữ liệu web bằng cách trích xuất asset của trang web từ các file HTML, bao gồm file JavaScript, logo, phông chữ, hình thu nhỏ của image và CSS. Wget cũng cố gắng tạo một cấu trúc thư mục giống như máy chủ từ xa. Hãy tạo một thư mục riêng cho các bản tải xuống Wget để lưu trang web và cũng để tránh sự lộn xộn.

Trên Mac Terminal hoặc trong Command Prompt của Windows, hãy nhập:

mkdir Wgetdown

Bước này tạo ra một thư mục mới trong thư mục Home. Bạn có thể đặt bất cứ tên nào bạn muốn cho nó. Tiếp theo, nhập:

cd Wgetdown

Thay đổi thư mục. Điều này thay đổi thư mục làm việc hiện tại thành Wgetdown.

Chi tiết về các lệnh Wget

Sau khi tạo thư mục, ta sẽ sử dụng lệnh Wget thực tế:

wget -E -H -k -K -p -i [Đường dẫn đến file văn bản của bạn]

Wget sử dụng GNU getopt để xử lý các đối số dòng lệnh. Mỗi tùy chọn có 2 phiên bản, một dài một ngắn. Tùy chọn dài thuận tiện để nhớ nhưng mất thời gian để gõ. Bạn cũng có thể kết hợp các kiểu tùy chọn khác nhau. Hãy đi sâu vào chi tiết của các tùy chọn này:

  • -E (–adjust-extension): Nếu một file loại “app/xhtml+xml” hoặc “text/html” được tải xuống và URL không kết thúc bằng HTML, tùy chọn này sẽ nối HTML vào tên file.
  • -H (–span-hosts): Khi cố gắng truy xuất các liên kết, không ai muốn truy xuất vô số dữ liệu không cần thiết. Bạn muốn Wget chỉ theo dõi các liên kết cụ thể. Tùy chọn này bật tính năng Host Spanning, cho phép Wget chạy đệ quy để truy cập bất kỳ máy chủ nào được tham chiếu bởi một liên kết. Ví dụ, các image được đưa ra từ một host khác.
  • -p (–page-requisites): Tùy chọn này tải xuống tất cả các file cần thiết để hiển thị trang HTML. Nó bao gồm âm thanh, biểu định kiểu tham chiếu và hình ảnh nội tuyến.
  • -k (–convert-links): Tùy chọn này chuyển đổi các liên kết trong tài liệu để làm cho chúng phù hợp khi xem ngoại tuyến. Nó bao gồm những liên kết đến các biểu định kiểu, siêu liên kết đến nội dung không phải HTML, hình ảnh nhúng, v.v...
  • -K (–backup-converted): Khi chuyển đổi file, tùy chọn này sao lưu phiên bản gốc với hậu tố .orig.
  • -i (–input-file): Đọc URL từ đường dẫn đến file cục bộ hoặc file bên ngoài.

Đưa các lệnh vào sử dụng

Để thể hiện các lệnh này trong thực tế, hãy xem xét hướng dẫn sử dụng trang web có tên Writing Workflows (link tham khảo: https://processedword.net/writing-workflows/index.html#). Hướng dẫn này bao gồm một mục lục với liên kết đến các chương riêng lẻ. Mục tiêu cuối cùng là bạn muốn tạo một file PDF riêng biệt của các phần đó.

Bước 1: Mở Terminal và tạo một thư mục mới, như đã thảo luận ở trên.

Mở Terminal và tạo một thư mục mới

Bước 2: Sử dụng tiện ích mở rộng Link Klipper để lưu các liên kết dưới dạng file văn bản. Lưu file vào thư mục Downloads.

Lưu file vào thư mục Downloads

Bước 3: Trong khi bạn sử dụng thư mục Wgetdown, hãy nhập:

wget -E -H -k -K -p -i /Users/rahulsaigal/Downloads/links.txt

Nhập lệnh khi sử dụng thư mục Wgetdown

Bước 4: Nhấn Enter. Chờ quá trình hoàn tất.

Nhấn Enter. Chờ quá trình hoàn tất

Bước 5: Điều hướng đến thư mục Wgetdown. Bạn sẽ thấy thư mục processedword.net của domain chính với tất cả các asset của trang web và chapter1.html.

Điều hướng đến thư mục Wgetdown

Chuyển đổi HTML sang PDF

Chuyển đổi một trang web thành PDF khá đơn giản. Nhưng để chúng trông giống như trang web gốc là một nhiệm vụ khó khăn. Việc tạo ra một kết quả mong muốn phụ thuộc vào:

  • Phông chữ hệ thống có sẵn.
  • Tính toàn vẹn của HTML markup.
  • Các tính năng cần thiết hỗ trợ bảng hoặc hình ảnh nổi.
  • Tùy chọn mục lục.

Windows 10

PrinceXML là một ứng dụng nhanh chóng chuyển đổi các file HTML thành PDF. Nó cho phép bạn sắp chữ, định dạng và in nội dung HTML với bố cục có thể cấu hình và hỗ trợ tiêu chuẩn web. Nó đi kèm với nhiều phông chữ hữu ích và cũng cho phép bạn tùy chỉnh đầu ra PDF. Ứng dụng này miễn phí cho mục đích sử dụng phi thương mại.

Chuyển đổi HTML sang PDF trong Windows 10

MacOS

Trên máy Mac, bạn có thể tạo service Automator để chuyển đổi một loạt file HTML thành PDF. Mở Automator và tạo một tài liệu Quick Action. Đặt tùy chọn service để nhận file hoặc thư mục từ Finder. Tiếp theo, kéo trong Run Shell Script và đặt tùy chọn Pass input làm đối số. Sau đó, dán script này vào phần body:

for theFileToProcess in "$@"
 do
 cupsfilter "$theFileToProcess" > "${theFileToProcess%.*}.pdf"
 done

Lưu file dưới dạng HTML2PDF.

Lưu file dưới dạng HTML2PDF

Bây giờ, chọn tất cả các file HTML trong Finder. Nhấp chuột phải và chọn Services > HTML2PDF. Đợi một lát để chuyển đổi tất cả các file.

Nhấp chuột phải và chọn Services > HTML2PDF

Ngay từ cái nhìn đầu tiên, các bước liên quan đến việc chuyển đổi nhiều trang web thành PDF có vẻ phức tạp. Nhưng một khi bạn hiểu rõ các bước và quy trình, việc này sẽ tiết kiệm thời gian xét về lâu về dài. Bạn không cần phải chi tiền cho bất kỳ đăng ký web hoặc công cụ chuyển đổi PDF đắt tiền nào.

Nếu bạn đang tìm cách biến một trang web thành PDF, hãy đọc bài viết: Lưu nội dung toàn bộ trang web dưới dạng PDF để biết thêm chi tiết.

Chúc bạn thực hiện thành công!

Thứ Bảy, 14/09/2019 10:11
53 👨 87