选择beautiful soup第二个子。select?

【字号: 日期:2024-03-07浏览:28作者:雯心
如何解决选择beautiful soup第二个子。select??

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

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

soup.select('#names > p:nth-of-type(1)')解决方法

我有:

<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返回相同的结果。

相关文章: