【发布时间】:2018-06-24 06:20:22
【问题描述】:
我正在尝试使用 Html 单元从网页中提取数据。我已经通过将 HtmlPage 转换为文本然后使用正则表达式从该 HTML 页面中提取数据来实现这一点。我还实现了使用 Html 中的类属性从 Html 表中提取数据。
我想再次完全使用 HtmlUnit 进行所有提取,以了解我使用正则表达式完成的相同要求。无法获取如何以键值对的形式提取标签内的数据。
这里是示例 Html 数据
<div class="top_red_bar">
<div id="site-breadcrumbs">
<a href="/admin/index.jsp" title="Home">Home</a>
|
<a href="/admin/queues.jsp" title="Queues">Queues</a>
|
<a href="/admin/topics.jsp" title="Topics">Topics</a>
|
<a href="/admin/subscribers.jsp" title="Subscribers">Subscribers</a>
|
<a href="/admin/connections.jsp" title="Connections">Connections</a>
|
<a href="/admin/network.jsp" title="Network">Network</a>
|
<a href="/admin/scheduled.jsp" title="Scheduled">Scheduled</a>
|
<a href="/admin/send.jsp"
title="Send">Send</a>
</div>
<div id="site-quicklinks"><P>
<a href="http://activemq.apache.org/support.html"
title="Get help and support using Apache ActiveMQ">Support</a></p>
</div>
</div>
<table border="0">
<tbody>
<tr>
<td valign="top" width="100%" style="overflow:hidden;">
<div class="body-content">
<h2>Welcome!</h2>
<p>
Welcome to the Apache ActiveMQ Console of <b>localhost</b> (ID:TOOLCONTROLPJX526-524666-65544585445-2:3)
</p>
<p>
You can find more information about Apache ActiveMQ on the <a href="http://activemq.apache.org/">Apache ActiveMQ Site</a>
</p>
<h2>Broker</h2>
<table>
<tr>
<td>Name</td>
<td><b>localhost</b></td>
</tr>
<tr>
<td>Version</td>
<td><b>5.13.3</b></td>
</tr>
<tr>
<td>ID</td>
<td><b>ID:TOOLCONTROLPJX526-524666-65544585445-2:3</b></td>
</tr>
<tr>
<td>Uptime</td>
<td><b>17 days 13 hours</b></td>
</tr>
<tr>
<td>Store percent used</td>
<td><b>19</b></td>
</tr>
<tr>
<td>Memory percent used</td>
<td><b>0</b></td>
</tr>
<tr>
<td>Temp percent used</td>
<td><b>0</b></td>
</tr>
</table>
我想在表格标签之间提取数据。 预期输出
Name:localhost
Version:5.13.3
ID:ID:TOOLCONTROLPJX526-524666-65544585445-2:3
Uptime:7 days 13 hours
Store percent used:19
Memory percent used:0
Temp percent used:0
如何实现?我想知道在 HTLM 单元中使用哪些方法来实现这一点。
【问题讨论】:
-
@Rcordoval,别想太多......我不是在这里完成代码,而是使用 Html 单元在标签中提取的具体想法。如果您看到我的问题,我已经使用其他方法(正则表达式)完成了但无法找到或理解 Htmlunit 来实现这一点..!
-
HtmlUnit 有很多方法(在 HtmlPage 中)来获取元素(通过标签名称、ID、路径等)。如果元素是表格,则返回的是 HtmlTable。而 HtmlTable 有获取行的方法,行有获取单元格的方法。 javadoc 是你的朋友阅读它。