如何使用xpath获取子对象的子对象列表?

2024-10-03 00:25:02 发布

您现在位置:Python中文网/ 问答频道 /正文

有一个table元素,其中包含tr元素。而每个tr元素中都有td元素

<table>
<tr>
<td> some data </td>
<td> other data </td>
</tr>
</table>

我想成对地从td元素中获取文本。但我愿意使用xpath来实现这一点

因此,通过应用xpath,我在一个变量中从lxml树获得了tr元素。然后应用xpath从该变量获取td元素。但我从表中得到了所有td元素,我只想限制该变量中的td元素

table = parsed.xpath("//table")
trElementFirst = table.xpath("/tr")[0]
tdElementsFromFirstTr = trElementFirst.xpath("/td")

我只想得到第一个tr元素的td元素列表。但我从表中得到了所有td元素的列表


Tags: 文本元素列表datatablesomeparsedlxml
1条回答
网友
1楼 · 发布于 2024-10-03 00:25:02

tdElementsFromFirstTr = trElementFirst.xpath("//td")获取所有td

import lxml.html as html


htmlStr = '''<table>
<tr>
<td> some data </td>
<td> other data </td>
</tr>

<tr>
<td> NO </td>
<td> OTHER NO </td>
</tr>

</table>'''

parsed = html.fromstring(htmlStr)

table = parsed.xpath("//table")
trElementFirst = table[0].xpath("tr")[0]  
tdElementsFromFirstTr = trElementFirst.xpath("td")

for each in tdElementsFromFirstTr:
    print (each.text)

输出:

some data 
other data 

相关问题 更多 >