所以最近几天我一直在努力找到解决这个问题的方法。(NodeJS)
我已经尝试了像cheerio html table等的东西,但是大多数都没有用,因为他们没有处理rowpans等。
基本上我需要一个像这样的HTML表:
<table class="k" border-width="3">
<tbody>
<tr>
<th width="50">
XXXXXX </th>
<th width="50">
YYYY</th>
<th width="50">
</th>
<th width="50">
ZZZZZZZZ</th>
<th width="50">
QQQQ</th>
<th width="50">
LLLL</th>
<th width="150">
</th>
</tr>
<tr class="k">
<th rowspan="11" class="k">
11</th>
<td>
Data</td>
<td>
1</td>
<td>
Data2</td>
<td>
</td>
<td>
Data3</td>
<td>
Data4</td>
</tr>
<tr>
<td>
Data5</td>
<td>
2</td>
<td>
</td>
<td>
Data6</td>
<td>
</td>
<td>
Data7</td>
</tr>
<tr>
<td>
Data8</td>
<td>
2</td>
<td>
</td>
<td>
</td>
<td>
</td>
<td>
Data10</td>
</tr>
<tr>
<td>
Foo</td>
<td>
3</td>
<td>
Foo</td>
<td>
</td>
<td>
Foo</td>
<td>
Foo</td>
</tr>
<tr>
<td>
Foo</td>
<td>
3</td>
<td>
Foo</td>
<td>
</td>
<td>
Foo</td>
<td>
</td>
</tr>
<tr>
<td>
Foo</td>
<td>
4</td>
<td>
Foo</td>
<td>
</td>
<td>
Foo</td>
<td>
</td>
</tr>
<tr>
<td>
Foo</td>
<td>
4</td>
<td>
</td>
<td>
</td>
<td>
</td>
<td>
Foo</td>
</tr>
</tbody>
转换为类似的内容:
{
"XXXXXX": "11",
"YYYY": "Data",
"SSS": "1",
"ZZZZZZZZ": "Data2",
"QQQQ": "",
"LLLL": "Data3",
"Data4": ""}
表格中的每一行
答案 0 :(得分:0)
在NodeJS中执行此操作的最简单方法是使用npm模块html-table-to-json。
const HtmlTableToJson = require('html-table-to-json');
const html = '' # Paste your HTML table
const jsonTables = new HtmlTableToJson(html);
console.log(jsonTables['results']);