BeautifulSoup4/CSS选择器如何选择

2024-10-03 17:25:21 发布

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

<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>

给定一个这样的布局,使用beauthoulsoup4如何才能只从主外部表(包含同一类的子表)中选择td标记?在

我正在尝试使用.select()方法。在

到目前为止

^{pr2}$

返回主外部表。但我需要那上面的td标签。在

我试过了

soup.select("div.myDivClass > table.myTableClass tr td")

但这会返回所有的td标记


编辑:有人要求获得预期输出

我不确定BeautifulGroups是如何返回.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>']

它是一个字符串数组,字符串只是主外部表及其html内容的td标记


Tags: 方法字符串标记divtable布局selecttr
1条回答
网友
1楼 · 发布于 2024-10-03 17:25:21

您可以使用> tr > td代替tr td来完成此任务。使用前者,您只得到trtd元素,它们是您已经设法选择的外部表的直接子元素:

div.myDivClass > table.myTableClass > tr > td

供参考:MDN: Child selectors

相关问题 更多 >