【发布时间】:2020-01-11 19:18:23
【问题描述】:
我正在 scraping 的网站(使用 lxml )除了一张表之外的所有东西都可以正常工作,其中所有 tr 的 td 's 和标题 th's 是嵌套混合的,形成一个非结构化的 HTML 表格。
<table class='table'>
<tr>
<th>Serial No.
<th>Full Name
<tr>
<td>1
<td rowspan='1'> John
<tr>
<td>2
<td rowspan='1'>Jane Alleman
<tr>
<td>3
<td rowspan='1'>Mukul Jha
.....
.....
.....
</table>
我尝试了以下 xpaths,但每一个都只是返回一个 空列表。
persons = [x for x in tree.xpath('//table[@class="table"]/tr/th/th/tr/td/td/text()')]
persons = [x for x in tree.xpath('//table[@class="table"]/tr/td/td/text()')]
persons = [x for x in tree.xpath('//table[@class="table"]/tr/th/th/tr/td/td/text()') if x.isdigit() ==False] # to remove the serial no.s
最后,这样嵌套的原因是什么,是为了防止刮擦?
【问题讨论】:
-
显示此页面的URL,然后我们可以测试代码。
-
也许这只是个错误——有人忘记了代码中的结束标签。
-
@furas 它只是对网站
page.text给出的实际表格的简单转换,因为结构完全相同。其次,这种设计的需求是什么。我认为这样做是为了防止报废(也许)。 -
查看delhimetrorail.info/…中倒数第二个表格设计
-
链接页面的最后一个表格看起来很简单;您可以从您的网站发布一张完整的表格吗?
标签: python web-scraping lxml lxml.html