BeautifulSoup4/CSS select 或者如何 select
BeautifulSoup4/CSS selector how to select the
<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 你怎么能 select 仅来自主外部 table 的 td 标签(其中包含子 table s 相同 class)?
我正在尝试使用 .select() 方法。
到目前为止我有
soup.select("div.myDivClass > table.myTableClass")
其中returns主外table。但我需要那个的 td 标签。
我试过了
soup.select("div.myDivClass > table.myTableClass tr td")
但是 returns 所有的 td 标签
编辑:有人询问了预期的输出
我不确定 BeautifulSoups returns .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>']
这是一个字符串数组,字符串只是主外层table的td标签及其在html
中的内容
您可以使用 > tr > td
而不是 tr td
来完成此任务。使用前者你只得到 tr
然后 td
元素是外部 table 的直接子元素你已经设法 select :
div.myDivClass > table.myTableClass > tr > td
<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 你怎么能 select 仅来自主外部 table 的 td 标签(其中包含子 table s 相同 class)?
我正在尝试使用 .select() 方法。
到目前为止我有
soup.select("div.myDivClass > table.myTableClass")
其中returns主外table。但我需要那个的 td 标签。
我试过了
soup.select("div.myDivClass > table.myTableClass tr td")
但是 returns 所有的 td 标签
编辑:有人询问了预期的输出
我不确定 BeautifulSoups returns .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>']
这是一个字符串数组,字符串只是主外层table的td标签及其在html
中的内容您可以使用 > tr > td
而不是 tr td
来完成此任务。使用前者你只得到 tr
然后 td
元素是外部 table 的直接子元素你已经设法 select :
div.myDivClass > table.myTableClass > tr > td