Chuyển HTML sang JSON
Lấy bảng ra khỏi trang web đã lưu và nhận lại dưới dạng JSON để code của bạn duyệt qua. Các ô tiêu đề đặt tên cho khóa, mỗi hàng của bảng trở thành một đối tượng trong mảng.
Chuyển đổi dữ liệu
hoặc thả tệp CSV, TSV, TXT … vào đây ·
Tối đa 95 MB mỗi tệp· Tối đa 20 tệp· Xóa sau 30 phút
Tệp được xử lý trên máy chủ của chúng tôi và bị xóa sau 30 phút.
Ký tự ngăn cách các cột trong tệp CSV và văn bản, dùng cho cả đọc và ghi. Tự động sẽ nhận diện từ dữ liệu đầu vào và ghi bằng dấu phẩy.
UTF-8 dùng được cho mọi ngôn ngữ. Chọn UTF-8 có BOM nếu Excel trên Windows hiển thị sai ký tự có dấu hoặc ký tự châu Á khi mở tệp CSV.
Với đầu vào Excel, ODS và Numbers: chỉ chuyển trang tính đầu tiên, hoặc mọi trang tính (mỗi trang tính một tệp CSV trong tệp ZIP, hoặc mỗi trang tính một khóa JSON).
Tên thẻ trang tính trong bảng tính mới, tối đa 31 ký tự.
Mảng đối tượng dùng tên cột làm khóa cho từng dòng; mảng của mảng gọn hơn và giữ tiêu đề làm mảng đầu tiên.
Tên phần tử ngoài cùng bao tất cả các dòng; mỗi dòng trở thành một <row> bên trong nó.
Dùng trong các câu lệnh CREATE TABLE và INSERT. Chỉ gồm chữ cái, chữ số và dấu gạch dưới.
Cách đặt dấu trích dẫn và kiểu cột hơi khác nhau giữa các cơ sở dữ liệu; hãy chọn hệ bạn sẽ nhập vào.
Ghi lại các ô ngày tháng theo một định dạng thống nhất. ISO (2026-10-18) an toàn nhất cho cơ sở dữ liệu và mã nguồn; giữ nguyên để chúng như trong tệp gốc.
Cách sử dụng công cụ này
- 1
Lưu trang web hoặc bảng
Trong trình duyệt, nhấn Ctrl+S (Cmd+S trên máy Mac) và giữ lại file HTML, hoặc sao chép mã nguồn của bảng từ công cụ dành cho nhà phát triển vào một file .html. Tải lên tối đa 20 file, mỗi file 95 MB.
- 2
Chọn cấu trúc JSON
Mảng đối tượng đã được chọn sẵn. Trong Cài đặt nâng cao, đổi Cấu trúc JSON sang Mảng các mảng để có file gọn hơn, hoặc tắt Định dạng dễ đọc để xuất ra một dòng duy nhất.
- 3
Chuyển đổi và sử dụng dữ liệu
Nhấn Chuyển sang JSON, tải file xuống rồi nạp bằng
JSON.parsetrong JavaScript,json.loadtrong Python hoặc bất kỳ ứng dụng khách API nào.
Lưu trang, tải file .html lên và mỗi dòng của bảng sẽ trở thành một đối tượng JSON với khóa lấy từ các ô tiêu đề.
Khi nào cần chuyển bảng web sang JSON
Rất nhiều dữ liệu hữu ích chỉ tồn tại dưới dạng bảng HTML: trang tỷ giá, bảng xếp hạng giải đấu, báo cáo mạng nội bộ hiển thị nhưng không cho tải về, trang trạng thái liệt kê mọi máy chủ. Trình duyệt hiển thị đẹp, nhưng lập trình viên front-end dựng biểu đồ hay người kiểm thử cần dữ liệu mẫu lại muốn một mảng đối tượng.
Cách thường dùng là viết scraper: tải trang, phân tích bằng Beautiful Soup hoặc Cheerio, duyệt từng hàng, ánh xạ các ô. Cách đó đáng làm khi trang thay đổi hằng ngày. Với một bảng chỉ cần một lần, tải trang đã lưu lên sẽ nhanh hơn và không phải bảo trì gì.
Ví dụ chuyển bảng HTML sang JSON
<table>
<tr><th>City</th><th>Founded</th></tr>
<tr><td>Porto</td><td>1123</td></tr>
<tr><td>Graz</td><td>1128</td></tr>
</table>
[
{ "City": "Porto", "Founded": 1123 },
{ "City": "Graz", "Founded": 1128 }
]Những gì được giữ lại và bị loại bỏ khi chuyển đổi
- Giữ lại: chữ trong ô, dòng tiêu đề làm khóa và thứ tự các dòng
- Bỏ đi: CSS, style nội tuyến, class và phần trang bao quanh bảng
- Bỏ đi: hình ảnh và biểu tượng trong ô vì không có giá trị văn bản
- Ô chứa liên kết giữ chữ hiển thị, không giữ URL phía sau
- Khoảng trắng ở đầu và cuối ô được loại bỏ bởi Cắt khoảng trắng
- Kết quả là UTF-8, đúng yêu cầu của RFC 8259 đối với JSON trao đổi giữa các hệ thống
Giới hạn khi chuyển HTML sang JSON
- trang đã lưu được chấp nhận
- .html .htm
- trang mỗi lượt
- 20
- mỗi file tải lên
- 95 MB
- sau đó file bị xóa
- 30 phút
So sánh HTML và JSON
HTML
Ngôn ngữ đánh dấu siêu văn bản (HTML)
HTML là ngôn ngữ đánh dấu của web, được Tim Berners-Lee mô tả lần đầu vào đầu thập niên 1990 và hiện do WHATWG duy trì dưới dạng tiêu chuẩn sống. Tệp HTML mô tả tiêu đề, đoạn văn, liên kết, bảng, hình ảnh và biểu mẫu, còn phần trình bày thường đến từ CSS. Mọi trình duyệt đều hiển thị HTML, và định dạng này cũng được dùng cho mẫu email và trang web đã lưu. Một tệp HTML đơn lẻ thường phụ thuộc vào ảnh và stylesheet bên ngoài, nên có thể hiển thị lỗi khi bị di chuyển riêng.
- Nén
- –
- Độ trong suốt
- –
- Ảnh động
- –
- Ra mắt
- 1993 · Tim Berners-Lee; maintained by WHATWG
JSON
Dữ liệu JavaScript Object Notation (JSON)
JSON là định dạng văn bản gọn nhẹ cho dữ liệu có cấu trúc, được Douglas Crockford phổ biến đầu thập niên 2000 và chuẩn hóa thành RFC 8259 và ECMA-404. Định dạng biểu diễn object, mảng, chuỗi, số, boolean và null bằng cú pháp đơn giản, dễ đọc. JSON là định dạng mặc định cho API web, tệp cấu hình và trao đổi dữ liệu giữa các ứng dụng trong hầu hết ngôn ngữ lập trình. Định dạng không có sẵn chú thích, kiểu ngày tháng hay schema, và tệp lớn lồng nhiều cấp rất khó đọc nếu không có trình xem.
- Nén
- –
- Độ trong suốt
- –
- Ảnh động
- –
- Ra mắt
- 2001 · Douglas Crockford
Chuyển HTML sang JSON khi một bảng được đăng cho người đọc, trên trang báo cáo, mạng nội bộ hoặc trang thống kê công khai, cần làm dữ liệu đầu vào cho script, thư viện biểu đồ hoặc bài kiểm thử API.
Hai định dạng này xuất phát từ những truyền thống khác nhau. HTML, do Tim Berners-Lee mô tả lần đầu năm 1991 và nay do WHATWG duy trì như một chuẩn sống, dùng để đánh dấu tài liệu hiển thị. JSON, do Douglas Crockford đặc tả và được chuẩn hóa thành RFC 8259 và ECMA-404, chỉ chứa dữ liệu. Chuyển từ cái đầu sang cái sau chủ yếu là bỏ phần trình bày, nên kết quả thường nhỏ hơn nhiều so với trang đã lưu. Với bảng đến từ nguồn cấp XML chứ không phải trang web, XML sang JSON làm việc tương tự.
Câu hỏi về chuyển HTML sang JSON
Công cụ đọc toàn bộ trang web hay chỉ đọc bảng?
Chỉ có mã bảng: các hàng và ô nằm trong thẻ table, tr, th và td. Menu điều hướng, đoạn văn và bố cục thẻ dựng từ div không phải dữ liệu dạng bảng nên không được chuyển thành JSON.
Hàng nào cung cấp khóa cho JSON?
Dòng tiêu đề, thường là các ô th ở đầu bảng. Khi bật Dòng đầu là tiêu đề, chữ trong đó trở thành khóa cho từng giá trị bên dưới, nên cột có tiêu đề Population sẽ cho "Population": "…" trong mỗi đối tượng.
Ô colspan và rowspan được xử lý thế nào?
Ô gộp chiếm nhiều vị trí trên lưới nhưng chỉ chứa một giá trị. Giá trị đó chỉ xuất hiện ở vị trí đầu tiên, vì vậy hãy kiểm tra các cột bị gộp sau khi chuyển và điền phần thiếu bằng mã nếu bảng của bạn dùng tiêu đề gộp.
Vì sao số trong JSON lại có dấu phẩy hoặc ký hiệu chú thích?
Bảng trên web được viết cho người đọc nên ô có thể ghi 1,204,000 hoặc 8.3[2]. Số thuần như 1123 sẽ thành số JSON, còn các ô kia không phải số hợp lệ và vẫn là chuỗi; hãy xóa dấu phân cách và ký hiệu chú thích bằng mã trước khi tính toán.
Có được phép lấy bảng từ một trang web không?
Điều đó phụ thuộc vào điều khoản của trang và loại dữ liệu, không phụ thuộc định dạng file. Thống kê công khai và báo cáo do chính bạn xuất ra thường không có vấn đề; hãy xem điều khoản trước khi dùng lại nội dung của người khác.
Có thể nhận bảng tính thay vì JSON không?
Có. HTML sang CSV ghi cùng bảng đó thành các dòng phân tách bằng dấu phẩy, mở được trong Excel, Google Sheets hoặc Numbers.