我想抓取具有以下HTML结构的网站的一部分:
<table>
<tbody>
<tr>
<td colspan="2">
<h4 class="h4-lead text-left m-b-0">Basic Info</h4>
</td>
</tr>
<tr>
<td><strong>Condition</strong></td>
<td>1 (mint)</td>
</tr>
<tr>
<td> </td>
<td>With box</td>
</tr>
<tr>
<td> </td>
<td>With papers</td>
</tr>
<tr>
<td><strong>Gender</strong></td>
<td>Unisex</td>
</tr>
</tbody>
</table>
我希望在条件和性别之间的td
元素中获取每个tr
的第二个类型的文本行。
基于以上所述我想要的输出是:
['1 (mint)', 'With box', 'With papers']
我尝试了几种方法,但我甚至都不接近解决方案。
请注意,条件行的数量是任意的,不一定是3,如本例所示。它可以是0,1,2 ...... n。
答案 0 :(得分:1)
这个XPath,
//td[2][ preceding::td[.='Condition']
and following::td[.='Gender']
]/text()
将选择td
和Condition
之间所有第二个Gender
元素的文本节点,
1 (mint)
With box
With papers
按要求。