Trích bảng HTML sang JSON / CSV online
Lấy mọi bảng của trang web hoặc đoạn HTML ra JSON hoặc CSV, tự trải ô gộp (rowspan / colspan) và ghép tiêu đề nhiều dòng.
Kết quả
Bấm “Chạy” để xem kết quả.
API trích bảng HTML biến các thẻ <table> thành dữ liệu. Đưa vào một URL hoặc html, API trả về từng bảng kèm tiêu đề bảng, id, số dòng, số cột, tên cột và các dòng dưới dạng object theo tên cột (hoặc mảng thuần với format=rows). Ô gộp được trải thành lưới đều, nên ô có rowspan="2" xuất hiện ở cả hai dòng, và tiêu đề nhiều dòng được ghép lại (“Giá / Mua”, “Giá / Bán”).
Tiêu đề được nhận từ <thead> và các dòng <th>, hoặc từ dòng đầu chứa nhãn (header=first hoặc none để chỉ định). Bảng lồng dùng để dàn trang được bỏ qua theo mặc định, min_rows loại bảng quá nhỏ và index chọn một bảng; với format=csv bảng đó được trả về dạng file CSV UTF-8 (có BOM để Excel mở đúng tiếng Việt).
Trang được tải với cùng cơ chế bảo vệ như các API web khác (không truy cập địa chỉ nội bộ, giới hạn 5 MB). Bảng do JavaScript dựng sau khi tải trang thì API không thấy.
Dùng trong code của bạn
curl -X POST "https://apibox.io.vn/v1/html-tables" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"html":"<table><thead><tr><th rowspan=\"2\">Tên</th><th colspan=\"2\">Giá</th></tr><tr><th>Mua</th><th>Bán</th></tr></thead><tr><td>USD</td><td>25,380</td><td>25,790</td></tr></table>"}'const res = await fetch('https://apibox.io.vn/v1/html-tables', {
method: 'POST',
headers: {
Authorization: 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json',
},
body: JSON.stringify({
"html": "<table><thead><tr><th rowspan=\"2\">Tên</th><th colspan=\"2\">Giá</th></tr><tr><th>Mua</th><th>Bán</th></tr></thead><tr><td>USD</td><td>25,380</td><td>25,790</td></tr></table>"
}),
});
const data = await res.json();
console.log(data);import requests
res = requests.post(
"https://apibox.io.vn/v1/html-tables",
headers={"Authorization": "Bearer YOUR_API_KEY"},
json={"html": "<table><thead><tr><th rowspan=\"2\">Tên</th><th colspan=\"2\">Giá</th></tr><tr><th>Mua</th><th>Bán</th></tr></thead><tr><td>USD</td><td>25,380</td><td>25,790</td></tr></table>"},
timeout=30,
)
print(res.json())<?php
$ch = curl_init('https://apibox.io.vn/v1/html-tables');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_HTTPHEADER => ['Authorization: Bearer YOUR_API_KEY', 'Content-Type: application/json'],
CURLOPT_POSTFIELDS => '{"html":"<table><thead><tr><th rowspan=\\"2\\">Tên</th><th colspan=\\"2\\">Giá</th></tr><tr><th>Mua</th><th>Bán</th></tr></thead><tr><td>USD</td><td>25,380</td><td>25,790</td></tr></table>"}',
]);
$response = curl_exec($ch);
print_r(json_decode($response, true));Tài liệu API → Nhận API key miễn phí
Hỏi đáp
Ô gộp được xử lý thế nào?
Giá trị được chép vào mọi ô mà nó chiếm, nên dòng nào cũng có cùng số cột.
Có xuất CSV mở được bằng Excel không?
Có, format=csv&index=N trả về UTF-8 có BOM và xuống dòng CRLF, Excel mở giữ nguyên tiếng Việt.
Vì sao thiếu một bảng?
Có thể bảng được dựng bằng JavaScript trên trình duyệt; API đọc HTML máy chủ trả về.