如何在BeautifulSoup中对可变次数n调用findNext()方法
BeautifulSoup 重复调用findNext()获取第n个相邻元素解决方案
核心问题解答
- 是否需要用for循环实现:可以用for循环实现,逻辑直观灵活,非常适合n为可变参数的场景
- 查找第五个相邻td元素的两种实现方案如下:
方案1:for循环实现(适配任意可变次数n)
你可以通过循环重复调用findNext()方法,n设为5即可拿到第五个相邻td元素:
# 假设你初始调用findNext的标签对象为soup_tag n = 5 current = soup_tag for _ in range(n): current = current.findNext('td') result = current.text
方案2:调用内置方法简化代码(无需手写循环)
BeautifulSoup原生提供find_next_siblings()方法可以直接获取所有后续同级td元素,索引从0开始计数,第五个对应索引4:
result = soup_tag.find_next_siblings('td')[4].text
注意:实际使用时建议提前校验标签存在性,避免标签数量不足导致的索引越界、属性调用报错问题。
内容的提问来源于stack exchange,提问作者Jimmy
相关产品推荐
相关产品推荐

