【发布时间】:2016-03-14 06:36:32
【问题描述】:
你好,我有这样的 HTML 表格(由代码中的注释自行解释):
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<tbody>
<!-- there is a box -->
<tr>RED BOX</tr>
<!-- containing the following balls, each <td> has a ball -->
<!-- may be more than one <tr> -->
<tr>
<td>ball 1</td>
<td>ball 2</td>
</tr>
<tr>
<td>ball 3</td>
</tr>
<!-- another box -->
<tr>GREEN BOX</tr>
<!-- containing the following balls -->
<tr>
<td>ball 4</td>
</tr>
</tbody>
</body>
</html>
如代码中注释所示:RED BOX是tr,球1、2、3在RED BOX中,从结构上可以看出,球1、2、3在tr在<tr>RED BOX</tr> 之后(球可能在一个或多个tr 中)。 GREEN BOX 是另一个tr,然后球4 在tr。
我想找到每个盒子里的球。我可以通过
找到<tr>RED BOX</tr>和<tr>GREEN BOX</tr>
tr_box = bs.findAll(text=[regex 'something BOX'])
我可以找到下一个 tr 使用
for t in tr_box:
t[0].find_next('tr')
(可以找到第1、2、4号球,错过第3号球)
但是 (1) 有没有像 find_between_objects 这样的东西可以在 <tr>RED BOX</tr> 和 <tr>GREEN BOX</tr> 之间找到所有 tr?或将所有tr 分割成多个部分的函数,除以<tr>RED BOX</tr> 和<tr>GREEN BOX</tr>?
(2) 如何找到<tr>GREEN BOX</tr>和表尾</tbody>之间的所有tr?
谢谢
【问题讨论】:
标签: python html tree beautifulsoup html-parsing