Show HN: MarkdownDown, công cụ sắp xếp và chuyển đổi trang web sang Markdown
(markdowndown.vercel.app)- MarkdownDown là công cụ chuyển bất kỳ trang web nào thành tài liệu Markdown gọn gàng
- Hỗ trợ tải xuống hình ảnh trong kết quả chuyển đổi để có thể liên kết các hình ảnh đã lưu cục bộ trong Markdown
- Cung cấp tùy chọn loại bỏ các phần tử không phải nội dung để giảm bớt những thành phần không liên quan đến nội dung chính
- Cũng có tùy chọn áp dụng GPT Filter cho kết quả Markdown
- Hữu ích cho người dùng muốn lưu trữ nội dung trang web dưới dạng Markdown hoặc sắp xếp cả hình ảnh đi kèm
Sắp xếp trang web thành Markdown
- MarkdownDown chuyển trang web thành Markdown gọn gàng
- Trong quá trình chuyển đổi, có thể tải xuống hình ảnh và đưa liên kết hình ảnh cục bộ vào kết quả
Tùy chọn chuyển đổi
-
Sắp xếp tập trung vào nội dung chính
- Dùng tùy chọn Remove non-content elements để loại bỏ các phần tử không phải nội dung
-
Xử lý hình ảnh
- Dùng tùy chọn Download images locally and link them để lưu hình ảnh cục bộ và chèn liên kết
-
Áp dụng GPT Filter
- Dùng tùy chọn Apply GPT Filter on Markdown để áp dụng GPT Filter cho kết quả Markdown
1 bình luận
Ý kiến trên Hacker News
Có ba vấn đề khác nhau khi chuyển một website sang Markdown: thu thập đầy đủ nội dung trang, loại bỏ quảng cáo và nội dung phụ, và giữ được bố cục cũng như định dạng section đúng
Với trích xuất nội dung chính xác và định dạng, các giải pháp dựa trên Trafilatura, Newspaper4k, python-readability hoạt động tốt nhất ở cấu hình mặc định; còn để thu thập đầy đủ thì kết hợp dịch vụ scraping với Selenium là phù hợp
Tôi tò mò công cụ này làm khác đi hoặc làm tốt hơn ở điểm nào. Lĩnh vực này đã chững lại một thời gian, nên muốn nghe những gì đã học được
Về trích xuất nội dung, cách làm của thư viện Postlight khá gọn. Nó chấm điểm từng HTML node bằng các heuristic như độ dài văn bản, mật độ link, CSS class, rồi chọn node có điểm cao nhất. Tôi từng port sang Swift khi làm một app đọc sau cá nhân
https://github.com/postlight/parser
Nếu kiểm tra thất bại, luồng sẽ cắt bớt toàn bộ ngữ cảnh HTML của trang, chuyển sang Markdown bằng Pandoc, rồi LLM trích xuất phần nội dung chính từ Markdown
Vercel à, vậy giờ nếu traffic đổ vào thì phải cẩn thận hóa đơn. Hy vọng bạn không dùng theo đúng cách Vercel cứ khuyến khích dùng mãi
Đúng như meme xe buýt: bên vui vẻ là người dùng và Vercel, bên buồn là ví tiền
Tất nhiên, ngoại lệ là khi cần scaling động và scale down
Tôi không làm gì riêng để xử lý traffic từ HN, chỉ là một app Next.js mặc định
Cung cấp tải ảnh xuống và lọc dựa trên GPT là một ý tưởng hay
Năm ngoái tôi đã làm một công cụ tương tự nhưng không có các tính năng đó: https://url2text.com/
UI có thể chậm, nhưng có thể xem output mẫu trên trang chủ
API nền tảng là website screenshot API của Urlbox; nếu dùng trực tiếp thì hiệu năng tốt hơn nhiều. Có thể yêu cầu Markdown cùng lúc với HTML được render bằng JavaScript, metadata và screenshot: https://urlbox.com/extracting-text
Cũng có thể lưu kết quả thẳng vào storage tương thích S3: https://urlbox.com/s3
Hoặc nhận qua webhook: https://urlbox.com/webhooks
Trong side project của mình, tôi đang render hơn 1 triệu lần mỗi tháng bằng tính năng Markdown của Urlbox; loại Markdown này dùng cho embedding và prompt tốt hơn nhiều
Nếu muốn scrape toàn bộ website theo kiểu này, công cụ mới của dctanner cũng đáng xem: https://usescraper.com/
Giá $0.001 mỗi trang và dùng trình duyệt Chrome headless. Kết quả nhanh, trả tiền đúng theo mức sử dụng
Nếu chỉ cần text thì có vẻ khá đắt
Nếu website hiện thông báo cookie, có vẻ công cụ này bị kẹt ở đó và không parse được nội dung thật
Ví dụ tôi thử nhập https://www.cnbc.com/ thì Markdown được tạo ra chỉ gồm thông báo cookie và các câu chữ pháp lý xung quanh
Tôi khá may vì có thể xây trên một API trưởng thành đã xử lý sẵn nhiều edge case phát sinh từ các kiểu render trang khác nhau
Chỉ dùng htmltidy và chuyển đổi HTML→Markdown của Pandoc thôi cũng đã đủ dùng khá tốt
http://www.html-tidy.org/
https://pandoc.org/
Tôi vừa bị hấp dẫn vừa hơi sợ ý tưởng chạy toàn bộ HTML template cuối qua nó để tìm các cấu trúc sai còn sót lại. Tùy mức độ có cấu trúc của kết quả sửa, có lẽ có thể biến nó thành test suite
Tôi cũng đã làm một thứ rất giống là smort.io. Chỉ cần thêm
smort.io/trước URL của bất kỳ bài viết nào là có thể dễ dàng chỉnh sửa, chú thích và chia sẻNó cũng hoạt động với các bài báo ArXiv
Bài Show HN của Smort ở đây: https://news.ycombinator.com/item?id=30673502
https://jina.ai/reader/
Tôi đã thử với một trang marketing phức tạp và nó xử lý rất tốt
Nếu chia sẻ được, tôi tò mò mức tải đặt lên host là bao nhiêu. Muốn biết liệu có thể tiếp tục vận hành miễn phí hay cuối cùng chi phí sẽ trở nên kém hiệu quả
Ngoài ra GPT-4 đắt, nhưng cho đến giờ chi phí vẫn không đáng kể nên tôi khá kỳ vọng. Có vẻ có thể duy trì lâu dài
Đây là một trong những trường hợp không cần AI. Đã có những thuật toán trích xuất nội dung khỏi trang hoạt động rất tốt, và một trong các bản triển khai là https://github.com/buriy/python-readability
Tôi cũng đã thử readability và vài thư viện khác. Không biết hiện nay mức tiên tiến nhất ra sao
Nó loại bỏ nhiều nội dung hơn tôi muốn rất nhiều
Pandoc luôn đáng kinh ngạc (https://pandoc.org/) làm việc này rất tốt. Thực tế là nó cũng hỗ trợ gần như mọi định dạng tài liệu khác
Nó tuyệt vời, dễ dùng và hoạt động tốt. Các công cụ mới trong lĩnh vực này thường xuyên xuất hiện, nhưng để khiến tôi dùng thứ gì đó thay vì Pandoc thì có lẽ nó phải có một tính năng thật độc đáo, thuyết phục hoặc được tối ưu hóa rất cao cho một trường hợp sử dụng cụ thể
Hay đấy. Ước gì có một tiện ích mở rộng trình duyệt áp dụng cái này cho mọi trang tôi đọc và lưu lại ở đâu đó
https://github.com/deathau/markdown-clipper
Chắc cũng có khoảng vài chục tiện ích thay thế tương tự
https://omnivore.app/
Sửa: tôi đọc quá nhanh. Tôi đã bỏ lỡ phần xử lý tự động và có hệ thống