当前位置: 首页 > 面试题库 >

选择beautiful soup第二个子。select?

汪建德
2023-03-14
问题内容

我有:

<h2 id='names'>Names</h2>
<p>John</p>
<p>Peter</p>

现在,如果我已经有了h2标签,最简单的方法就是将Peter带到这里?现在我尝试了:

soup.select("#names > p:nth-child(1)")

但是在这里我得到nth-child NotImplementedError:

NotImplementedError: Only the following pseudo-classes are implemented: nth-of-type.

所以我不确定这是怎么回事。第二种选择是只获取所有’p’标签子代并进行硬选择[1],但是存在索引超出范围的危险,这将需要用try /包围所有尝试让
Peter 尝试,除非这有点愚蠢。

有什么方法可以用汤.select()函数选择第n个孩子吗?

编辑: 用nth-of-type替换nth-child似乎可以解决问题,所以正确的行是:

soup.select("#names > p:nth-of-type(1)")

不知道为什么不接受nth-child,但是似乎nth-child和nth-of返回相同的结果。


问题答案:

添加您的编辑作为答案,以便其他人更容易找到它:

使用nth-of-type代替nth-child

soup.select("#names > p:nth-of-type(1)")


 类似资料:
  • 问题内容: 我有一个包含多个标签的标签。 我只能为第一个标记设置CSS属性: 但是,我以下尝试为除第一个标签之外的其他每个标签设置CSS属性不起作用: 如何在CSS中编写“除第一个元素外的每个元素”? 问题答案: 一个您发布的版本的实际工作为所有现代浏览器(如CSS选择3级的支持: 如果您需要支持旧版浏览器,或者由于选择器的限制(仅接受一个简单的选择器作为参数)而受到阻碍,则可以使用另一种技术:

  • 我有一个标签,包含几个标签。 我只能为第一个标记设置CSS属性: 但是,我下面尝试为每个标记设置CSS属性,但第一个除外,但都不起作用: 我如何用CSS写:“每个元素,除了第一个”?

  • 问题内容: 我有一个mysql问题。 我的网站上有一个新闻版块,我想显示两个最新项目。如果我做: 它选择了最新的项目,现在我要选择倒数第二个项目。 你们知道怎么做吗? /// 编辑 现在它不起作用了,这是我的代码:(我已经包含了;)) 问题答案: -选择最后2个项目 -仅选择第二项

  • 问题内容: 我有两个选择: 如果我首先选择“水果”,该如何使用jQuery?第二个选择仅向我显示水果- 香蕉,苹果,橙子。如果我在第一个选择中选择“鸟”,则第二个选择仅显示“鸟”-老鹰,鹰。等等… 我试图用这段jQuery代码来做到这一点: 不幸的是,它几乎删除了所有内容,而且我不知道如何恢复一些选择。我也阅读了一些有关克隆的内容,但是在这种情况下我不知道如何使用它。 问题答案: $(“#sele

  • 问题内容: 我想选择所有具有A和B均为类属性的div。 以下选择 但是选择所有在类属性中具有A或B的div。类可以按任何顺序具有许多其他属性(C,D等),但是我只想选择同时具有A和B的那些属性。 问题答案: 改为使用:

  • 问题内容: 我有以下标记: 我希望将样式设置为“一个”和“三个”。 但是,标记也可以是: 我尝试使用以下CSS: 但是,正如预期的那样,这是每个样式的第一个子元素的样式。 如何更改CSS,以便可以定位属于的第1个和第3个? 问题答案: 您不能仅凭CSS选择器来做到这一点。和兄弟组合器仅限于共享其父代的子代/兄弟姐妹,正如其名称所暗示的那样,并且CSS选择器无法解释父子结构的这种变化,也没有类似选择