<div class="myDivClass">
<table class="myTableClass">
<tr>
<td>
stuff-1A
<table class="myTableClass">
<tr>
<td>stuff-1B</td>
</tr>
</table>
</td>
</tr>
<tr>
<td>
stuff-2A
<table class="myTableClass">
<tr>
<td>stuff-2B</td>
</tr>
</table>
</td>
</tr>
<tr>
<td>
stuff-3A
<table class="myTableClass">
<tr>
<td>stuff-3B</td>
</tr>
</table>
</td>
</tr>
</table>
</div>
给定一个看起来像这样的布局,使用 beautifulSoup4 如何仅从主外部表(其中包含同一类的子表)中选择 td 标签?
我正在尝试使用 .select() 方法。
到目前为止我已经
soup.select("div.myDivClass > table.myTableClass")
返回主外部表。但我需要其中的 td 标签。
我试过了
soup.select("div.myDivClass > table.myTableClass tr td")
但这会返回所有 td 标签
编辑:有人询问预期输出
我不确定 BeautifulSoups 到底是如何返回 .select() 方法的, 但类似这样的事情
['<td>stuff-1a<table class="myTableClass"><tr><td>stuff-1B</td></tr></table></td>',
'<td>stuff-2a<table class="myTableClass"><tr><td>stuff-2B</td></tr></table></td>',
'<td>stuff-3a<table class="myTableClass"><tr><td>stuff-3B</td></tr></table></td>']
这是一个字符串数组,字符串只是主外表的td标签及其在html中的内容
最佳答案
您可以使用 > tr > td
而不是 tr td
来完成此任务。使用前者,您只能获得 tr
,然后获得 td
元素,这些元素是您已成功选择的外部表的直接子元素:
div.myDivClass > table.myTableClass > tr > td
关于python - BeautifulSoup4/CSS选择器如何选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31998600/