我正在尝试处理一些名为xls的文件,可以在Excel中打开,但它们是Web存档文件有一些嵌套表,我想首先使用非嵌套表。我以为我可以通过查看那些父元素有一个body标签的表来捕获非嵌套表,但是我的表中没有一个是table.get_parent()。tag =='body'true。即使对于下面的表剪辑,该特定表的父元素的标记也是div标记
<html>
<head>
<META http-equiv=3DContent-Type content=3D'text/html; charset=utf-8'><script type=3Dtext/javascript src=3DShow.js>/* Do Not Remove This Comment */</script></head>
<body>
<table class=3Dreport id=3DID0EI>
<tr>
<th>
我检查了一下身体标签,就像桌面标签一样。
table.getparent()
返回
<Element div at 9f05f10>
请注意,我通过将文档作为字符串阅读并遵循这些一般步骤来获取表格
myTree=html.fromstring(someString)
tables=myTree.cssselect('table')
tables=theTree.cssselect('table')
答案 0 :(得分:1)
救援的xpath
tree = html.fromstring(someString)
table_tops = set(tree.xpath('//table'))-set(tree.xpath('//table//table'))
可能有一些花哨的xpath(有些SO smarty会发布),但这应该超级快(并且易于阅读)
<强>更新强> css版本相同的想法
myTree=html.fromstring(someString)
table_tops = set(myTree.cssselect('table'))-set(myTree.cssselect('table table'))