如何解决选择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返回相同的结果。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。