Một thư viện JavaScript mới có tên Defuddle đã thu hút sự chú ý trong cộng đồng lập trình viên như một giải pháp thay thế tiềm năng cho Readability của Mozilla , nhằm giải quyết các vấn đề tồn tại lâu nay với việc trích xuất nội dung web và chuyển đổi HTML sang Markdown . Được tạo ra bởi nhóm đứng sau Obsidian Web Clipper , Defuddle hướng đến việc cung cấp kết quả sạch hơn và nhất quán hơn khi trích xuất nội dung chính từ các trang web.
Các tùy chọn Bundle của Defuddle:
- Bundle cốt lõi (
defuddle
): Bundle chính dành cho việc sử dụng trên trình duyệt, không có phụ thuộc - Bundle đầy đủ (
defuddle/full
): Bao gồm các tính năng phân tích phương trình toán học bổ sung - Bundle Node.js (
defuddle/node
): Được tối ưu hóa cho Node.js với JSDOM, bao gồm đầy đủ khả năng toán học và Markdown
Cộng đồng nêu bật các vấn đề về chất lượng và độ tin cậy của các công cụ hiện có
Các lập trình viên đã lên tiếng về những hạn chế của các công cụ trích xuất nội dung web hiện tại. Nhiều người đã trải qua sự thất vọng với việc Readability của Mozilla quá thận trọng, thường xuyên loại bỏ nội dung hữu ích trong nỗ lực xác định văn bản bài viết chính. Cuộc thảo luận trong cộng đồng cho thấy rằng mặc dù Readability vẫn được duy trì tích cực với các cập nhật gần đây, phương pháp tiếp cận cơ bản của nó có những khiếm khuyết cơ bản ảnh hưởng đến việc sử dụng thực tế.
Một vấn đề đặc biệt được chú ý liên quan đến các vấn đề định dạng theo ngôn ngữ cụ thể, nơi các trang chứa giá cả bằng tiếng Hà Lan hoặc các ngôn ngữ khác sử dụng dấu phẩy thay vì dấu chấm cho số có thể làm rối thuật toán trích xuất. Những lỗi này làm nổi bật những thách thức trong việc duy trì một giải pháp phù hợp với mọi loại nội dung web đa dạng.
Phương pháp đa lượt của Defuddle mang lại khả năng phục hồi nội dung tốt hơn
Khác với các công cụ trích xuất truyền thống, Defuddle sử dụng hệ thống phát hiện đa lượt có thể phục hồi khi các nỗ lực ban đầu không trả về nội dung nào. Phương pháp này cho phép nó linh hoạt hơn trong khi vẫn duy trì độ chính xác. Thư viện cũng sử dụng các kỹ thuật sáng tạo như phân tích các kiểu dáng di động của trang để xác định các phần tử có thể được ẩn hoặc loại bỏ một cách an toàn.
Công cụ này vượt xa việc trích xuất nội dung đơn giản bằng cách chuẩn hóa các định dạng đầu ra. Chú thích cuối trang, khối mã và phương trình toán học đều được chuyển đổi thành các cấu trúc HTML nhất quán, làm cho kết quả phù hợp hơn cho việc xử lý tiếp theo như chuyển đổi Markdown .
Các Tùy Chọn Cấu Hình Chính:
debug
: Bật ghi log chi tiết và giữ nguyên các thuộc tính HTMLmarkdown
: Chuyển đổi nội dung sang định dạng MarkdownseparateMarkdown
: Giữ nguyên nội dung HTML và trả về phiên bản Markdown riêng biệtremoveExactSelectors
: Loại bỏ các phần tử khớp chính xác với bộ chọn quảng cáo/mạng xã hội (mặc định: true)removePartialSelectors
: Loại bỏ các phần tử khớp một phần với bộ chọn quảng cáo/mạng xã hội (mặc định: true)
Hiệu suất mạnh mẽ trong các ứng dụng thực tế
Phản hồi từ cộng đồng người dùng Obsidian Web Clipper đặc biệt tích cực, với nhiều người khen ngợi độ tin cậy của chất lượng trích xuất Markdown . Công cụ đã chứng minh hiệu quả cho nhiều trường hợp sử dụng khác nhau, từ xây dựng cơ sở tri thức đến tạo ngữ cảnh web sạch cho các mô hình ngôn ngữ AI .
Chất lượng trích xuất markdown là đáng tin cậy nhất mà tôi từng thấy.
Khả năng xử lý các loại nội dung phức tạp của thư viện, bao gồm các phương trình toán học thông qua chuyển đổi MathML và định dạng chú thích cuối trang được chuẩn hóa, tạo ra sự khác biệt so với các công cụ trích xuất đơn giản hơn.
Định dạng đầu ra được chuẩn hóa:
- Tiêu đề: Loại bỏ H1/H2 đầu tiên nếu trùng với tiêu đề, chuyển đổi H1s thành H2s
- Khối mã: Được chuẩn hóa với thuộc tính dữ liệu ngôn ngữ:
<code data-lang="js" class="language-js">
- Chú thích: Định dạng nhất quán với tham chiếu được đánh số và liên kết ngược
- Toán học: Chuyển đổi sang MathML chuẩn với thuộc tính dữ liệu LaTeX
Các giải pháp thay thế nhận được sự công nhận
Cuộc thảo luận cũng đã thu hút sự chú ý đến các giải pháp thay thế mạnh mẽ khác trong lĩnh vực trích xuất nội dung. Các lập trình viên Python đã tìm thấy thành công với Trafilatura , cung cấp chất lượng trích xuất tương đương với việc trích xuất metadata chính xác. Đối với các lập trình viên Go , các phiên bản được duy trì tích cực của cả Readability và Trafilatura đều có sẵn, cung cấp các lựa chọn trên nhiều ngôn ngữ lập trình khác nhau.
Những giải pháp thay thế này cho thấy sự công nhận ngày càng tăng rằng nhu cầu trích xuất nội dung web đã phát triển vượt ra ngoài những gì các công cụ truyền thống có thể cung cấp, thúc đẩy sự đổi mới trên nhiều hệ sinh thái lập trình.
Defuddle đại diện cho một bước tiến đáng kể trong công nghệ trích xuất nội dung web, giải quyết các vấn đề thực tế mà các lập trình viên gặp phải hàng ngày. Sự tập trung vào đầu ra chuẩn hóa và phát hiện đa lượt làm cho nó đặc biệt có giá trị cho các ứng dụng yêu cầu trích xuất nội dung đáng tin cậy và sạch từ bối cảnh ngày càng phức tạp của các trang web hiện đại.
Tham khảo: Defuddle