问题描述
我一直在研究伪造者应用程序以抓取一些数据。
我有这段代码可以正常工作,但是可以对其进行改进以提供我想要的数据,从而对其进行改进以以一种可以使用的结构化方式获取数据。
const table1 = await page.$$eval('table:nth-child(3) tbody',tbodys => tbodys.map((tbody) => {
return tbody.innerText;
}));
因此,无论表中的TR和TD标签有多少,tbody都可以将其刮掉,但是我的问题是我的表有一个表行,并且在该表行中有两个表单元格。第一个TD是第二个TD中的数据头。
所以我有以下HTML:
<tr class="header1"><th colspan="2">COS-MOD-000-CAB-PAP-123202</th></tr>
body > center > table > tbody > tr:nth-child(2) > td:nth-child(2) > div:nth-child(3) > table:nth-child(3) > tbody > tr:nth-child(2)
//THIS IS THE BODY WHICH MY ORIGINAL CODE IS PULLING OUT THE TEXT OF. MY CODE LOOKS AT TDS ONLY WITHIN TRs.
<tbody><tr class="header1"><th colspan="2">COS-MOD-000-CAB-PAP-123202</th></tr>
<tr class="light">
<td style="text-align: right; width: 100px;"><strong>Status:</strong></td>//HEADER
<td valign="top">Wrong </td> //VALUE
</tr>
<tr class="dark">
<td style="text-align: right; width: 100px;"><strong>Created:</strong></td>//HEADER
<td valign="top">2019-09-09 17:18:53 </td>//VALUE
</tr>
<tr class="light">
<td style="text-align: right; width: 100px;"><strong>Modified:</strong></td>//HEADER
<td valign="top">2019-09-09 17:21:19 </td>//VALUE
</tr>
<tr class="dark">
<td style="text-align: right; width: 100px;"><strong>User:</strong></td>//HEADER
<td valign="top">fbibsan </td>//VALUE
</tr>
<tr class="light">
<td style="text-align: right; width: 100px;"><strong>BMS Account:</strong></td> //HEADER
<td valign="top">ABC123 SAS. (SAS) </td> //VALUE
</tr>
<tr class="dark">
<td style="text-align: right; width: 100px;"><strong>Mode:</strong></td>//HEADER
<td valign="top">FAF </td>//VALUE
</tr>
<tr class="light">
<td style="text-align: right; width: 100px;"><strong>Type:</strong></td>
<td valign="top">BOP </td>
</tr>
</tbody>
我需要的结构是表中的每一行:
HEADER:'VALUE'
我希望有人能提供帮助。我很感激,因为我已经花了几天的时间进行搜索。
解决方法
取决于地图回调中您的肢体类型。希望您能以某种方式解析该肢体对象。
我认为您只需要额外的解析,并且可能只需要向现有函数中添加一些逻辑即可。
这就是我要做的:
n
,
如果我不能正确理解任务,这是一个简化的示例,该示例演示如何从表中获取结构化数据:
iterators/generators require regenerator-runtime,which is too heavyweight for this guide to allow them. Separately,loops should be avoided in favor of array iterations.eslintno-restricted-syntax