【发布时间】:2015-07-18 01:22:33
【问题描述】:
我正在使用 Python 的 HTMLParser(本身不是必需的,但出于公司环境的原因,它比外部库更好)从一个巨大的表格中提取日期,该表格来自一个开发不佳的软件,看起来像这样的摘录:
(...)
<tr>
<td class='resultLabel'>
Scan Syntax
</td>
<td></td>
</tr>
<tr>
<td class='resultLabel'>Show Text</td>
<td></td>
</tr>
<tr>
<td class='resultLabel'>
Snapshot
</td>
<td>
05/05/15 11:25:16
<span class='clickCursorRegular' title='View Transcript' onClick="viewStatusTranscript('714294386-2303', '0FB88F01-CDA1-ECFA-597C-93CA57C71910')">
Succeeded
</span>
</td>
</tr>
<tr>
<td class='resultLabel'>Snapshot OS Image</td>
<td><span style='color:#636363;'>Not Supported</span></td>
</tr>
<tr>
<td class='resultLabel'>Telnet/SSH Session</td>
<td>
04/28/15 16:11:40
<span class='clickCursorRegular' title='View Transcript' onClick="viewStatusTranscript('714294386-2303', '814FE794-7982-2334-E69F-4D8EF9615011')">Failed</span>
</td>
</tr>
我的目标是获取与 Snapshot 字段对应的日期(在本例中为“05/05/15 11:25:16”),但仅如果快照成功。 (编辑:我的意思是无论哪种方式都可以获取日期,但也可以通过阅读“成功”部分来了解它是否有效)
这可以从以下日期内的文本中提取。包含表没有 ID 或类,但它是整个页面中唯一的表,并且行数可能会波动。 FWIW,HTML 是使用 Requests 获得的。
我一直在研究 HTMLParser,但我不确定如何完成这项任务...尽管由于公司规定,我真的很想坚持使用 Python 的内置插件,但请随意推荐其他库。
【问题讨论】:
-
这个场景对我来说不是 100% 清楚,但是当你找到它时,如何将日期存储在一个变量中,然后查看下一个元素,如果它显示成功,则使用存储的日期,否则清除它?
-
是的,这就是我想做的。这里的问题是我不知道找到所需数据的可靠方法(“成功”部分)
标签: python html-parsing html-parser