python - BeautifulSoup4/CSS选择器如何选择

标签 python css-selectors beautifulsoup

<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

供引用:MDN: Child selectors

关于python - BeautifulSoup4/CSS选择器如何选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31998600/

相关文章:

Python socket.send() 只能发送一次,然后socket.error : [Errno 32] Broken pipe occurred

python - python类之间的循环依赖

html - 如何防止 HTML 元素成为 CSS 规则的目标?

jquery - CSS - 添加类到 3n+4 'visible' 列表项

python - 是否可以用 beautifulsoup 抓取 "dynamical webpage"?

python - 在 pygame 中使方 block 从线上弹起

python - 从语法上推迟函数执行

html - 表格文本悬停和链接颜色

python - 用requests和BeautifulSoup解析leetcode题目内容

python - 网络数据(wiki) 抓取 python