【发布时间】:2016-05-12 01:03:01
【问题描述】:
我正在尝试使用 Python 解析 html 文件 使用任何外部模块。原因是我在触发 詹金斯的工作并遇到了一些导入问题 lxml 和 BeautifulSoup (尝试解决它,我认为 我在某处做工程以完成我的工作)
输入:
<tr class="test">
<td class="test">
<a href="a.html">BA</a>
</td>
<td class="duration">
0.000s
</td>
<td class="zero number">0</td>
<td class="zero number">0</td>
<td class="zero number">0</td>
<td class="passRate">
N/A
</td>
</tr>
<tr class="test">
<td class="test">
<a href="o.html">Aa</a>
</td>
<td class="duration">
0.000s
</td>
<td class="zero number">0</td>
<td class="zero number">0</td>
<td class="zero number">0</td>
<td class="passRate">
N/A
</td>
</tr>
<tr class="test">
<td class="test">
<a href="g.html">VideoAds</a>
</td>
<td class="duration">
0.390s
</td>
<td class="zero number">0</td>
<td class="zero number">0</td>
<td class="zero number">0</td>
<td class="passRate">
N/A
</td>
</tr>
<tr class="suite">
<td colspan="2" class="totalLabel">Total</td>
<td class="zero number">271</td>
<td class="zero number">0</td>
<td class="zero number">3</td>
<td class="passRate suite">
98%
</td>
</tr>
输出:
我想占用那个特定的块 带有“套件”类的 tr 标签(最后检查),然后拉 零号、零号、零号的值 和 passRate 套件。最后,打印值。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
例如。零数 = 271 ...
通过率 = 98%
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 这是我对 lxml 的尝试:
tree = parse(HTML_FILE)
tds = tree.xpath("//tr[@class='suite']//td/text()")
val = map(str.strip, tds)
这在本地可行,但我真的想做点什么 没有任何外部依赖。我应该使用 strip() 还是 使用 os.path.isFile() 打开一个文件。我可能不正确,但建议/引导我完成此操作的解决方案。
【问题讨论】:
-
又不是一个单独的模块吗? HTML解析器?我以前没有任何经验。也许你可以带我走。
-
要从 HTML 中只获取一个元素,您可以使用
re甚至标准字符串函数。 -
我可以,但问题是我需要用 class= "suite" 取出那个 tr 块,然后获取值。您能想到的任何替代/想法?
-
@furas : 你能告诉我你是怎么做的吗?
标签: python jenkins attributeerror jenkins-cli html-parser