html - 从表格中抓取 Excel VBA Web

标签 html css vba excel web-scraping

我正在尝试使用 VBL 将下表中的一些信息提取到 Excel 中,但没有成功。我需要的值似乎没有分配给它的任何元素 ID、标签名称或类名称。我在同一行 (01:15) 的燃料使用值 (89218) 和时间值之后。关于如何从表中抓取值,或如何从特定 TR、TD 中提取数据,谁能给我指出正确的方向。

表格的HTML来源:

<h3>Airbus A300-600-PW4158 Fuel Planner</h3>
<p>London to Chicago  EGKK-KORD (3441 NM)<br /></p>
<h2>Total Fuel: 101901 POUNDS</h2>
<table width="100%" border=1>
    <tr>
        <th style="text-align:left;">&nbsp;</th>
        <th style="text-align:left;">Fuel</td>
        <th style="text-align:left;">Time</th>
    </tr>
    <tr>
        <td>Fuel Usage</td>
        <td>89218</td>
        <td>08:47</td>
    </tr>
    <tr>
        <td>Reserve Fuel</td>
        <td>12682</td>
        <td>01:15</td>
    </tr>
    <tr>
        <td>Fuel on Board</td>
        <td>101901</td>
        <td>10:02</td>
    </tr>
</table>

非常感谢。

最佳答案

CSS 选择器:

在看不到更多 HTML 的情况下,您可以对显示的代码段使用以下 CSS 选择器选择器:

tr td:nth-child(2)
tr td:nth-child(3)

使用 CSS 选择器,这将带回所有 2 或 3 个带有 tr 的子 td 的节点列表。

例如:

CSS Selectors

您可以通过索引访问 nodeList 中的单个元素。


VBA:

vba 中的整体语法类似于:

.document.querySelectorAll("tr td:nth-child(2)")(0).innerText

或者可能是

.document.querySelectorAll("tr td:nth-child(2)").Item(0).innerText

0 是假设的。您需要检查完整的 HTML 以确定要使用的正确索引。

.document innerHTML 可以使用 IE 从 .responseText 填充,例如,导航到页面。

关于html - 从表格中抓取 Excel VBA Web,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41325721/

相关文章:

excel - 将数字分组,使它们的总和之差最小

html - 在 DIV 中定义 DIV 类的更优雅的方式

javascript - 从 parent 到 child 应用相同的填充值?

javascript - 在 jQuery 内部修改在 jQuery 中创建的 html 元素

javascript - 我试图用 html 元素包装函数的返回值

html - 将文本完美对齐到表格单元格的顶部

html - 如何实现 flex 的顶部指针

CSS 网格模板全宽行

vba - 对象模块中已存在 Visual Basic 成员

vba - Err.Raise 的 COM 错误号在哪里注册?