excel - HTML 表格抓取 - 表格对象返回为 1 个大单元格而不是单独的元素
问题描述
我一直在 excel VBA 中开发一个网页抓取程序(在这个论坛有很多帮助)。
我被困在一张显示单行的表格上,我需要自动点击。我在该过程的早期对类似的表使用了相同的方法,并且效果很好:
setting the HTML table to IEtable object
using ietable.rows(1).click
但是,此表返回 1 个单元格,其中包含我在网页上看到的所有单独元素的值,并且 .click 函数不起作用。
这是我试图访问的表的 HTML 代码:
<table id="tblPatientList" class="tblTabBody" style="height: 143px; width: 653px;" cellspacing="2" cellpadding="0">
<tbody>
<tr style="height: 100%; width: 100%;">
<td style="width: 649px; height: 100%;">
<div id="divPatientList" style="overflow: auto; width: 100%; height: 100%; background-color: white;">
<table id="dgrPatients" class="tblpat" style="border-width: 0px; width: 100%; border-collapse: collapse;" border="0" rules="all" cellspacing="0" cellpadding="1">
<tbody>
<tr class="headerBlue">
<td style="width: 5%;"> </td>
<td style="width: 15%;">Hosp No.</td>
<td style="width: 15%;">Surname</td>
<td style="width: 15%;">Forename</td>
<td style="width: 10%;">DOB</td>
<td style="width: 2%;">Sex</td>
<td style="width: 10%;">NHS Number</td>
<td style="width: 25%;">Address</td>
<td class="screenOnlyOutput" style="width: 5%;" align="center">List</td>
</tr>
<tr class="even" style="color: red;">
<td align="center"> </td>
<td><strong>12345678</strong></td>
<td>ANONYMOUS FIRST NAME</td>
<td>ANONYMOUS LAST NAME</td>
<td>dd/mm/yyyy</td>
<td align="center">M</td>
<td>123 456 7890 <img style="cursor: hand; vertical-align: middle; border: 0px;" title="Number present and verified" src="/icedesktop/dotnet/icedesktop/images/tick.gif" /></td>
<td>ANONYMOUS ADDRESS</td>
<td class="screenOnlyOutput" align="center"><input id="dgrPatients_ctl02_chkAddOrRemove" style="border: 0px; height: 12px;" name="dgrPatients$ctl02$chkAddOrRemove" type="checkbox" /></td>
</tr>
</tbody>
</table>
</div>
</td>
</tr>
</tbody>
</table>
此表始终只返回 2 行 - 一个标题和 1 个数据行。我尝试点击它:
Set ieTbl = ieDoc.Document.frames(0).Document.all.tblPatientList
If Not ieTbl Is Nothing Then
ieTbl.Rows(1).Click
Set ieTbl = Nothing
End If
当我在即时窗口中检查 ietable 对象时,它只有 1 行和 1 列,包含 ietbl 对象中 1 个单元格中的 html 页面上的所有单独单元格。
为什么要这样做?
解决方案
推荐阅读
- c++ - 使用 Bazel 使用不同的编译器/链接器选项构建 C/C++ 依赖项
- javascript - 从 html 视频元素到小的屏幕截图
- python - 在数据框列中搜索字符串模式,返回每个出现并加入另一个数据框
- swift - 在 Swift 中浮动的 Uint8 数组
- java - FireBaseListAdapter的Android工作室错误
- sql-server - 使用 Azure AD 时审核 SQL 表
- php - SQLSTATE [HY000]:一般错误:1364 字段“名字”没有默认值(SQL:插入“用户”(“电子邮件”)值(test@test.com))
- python - 如何避免模型在 keras Tensorflow 中变成层
- ios - CoreData派生属性查看一对多关系是否包含属性
- pandas - 在 Pandas 中操作列时出现内存错误