Python使用BeautifulSoup抓取无ID表格中id=boat的tr下方数据方法咨询
解法
BeautifulSoup 提供了同级元素遍历方法,可以精准定位到你需要的目标元素,不会受页面其他位置同类名元素的干扰,具体实现如下:
- 先定位到已确认的
id="boat"的tr元素 - 调用
find_next_sibling()方法,直接查找该元素紧邻的下一个符合要求的tr即可
基础代码示例
from bs4 import BeautifulSoup # 传入实际的页面HTML内容初始化soup soup = BeautifulSoup(你的页面HTML文本变量, 'html.parser') # 定位id为boat的tr boat_tr = soup.find('tr', id='boat') # 查找紧邻的下一个类为bottomline的tr target_tr = boat_tr.find_next_sibling('tr', class_='bottomline') # 提取目标tr内所有td的文本内容示例 if target_tr: data = [td.get_text(strip=True) for td in target_tr.find_all('td')] print(data)
特殊场景适配
如果boat对应的tr和目标tr中间夹了其他非tr的同级节点,只需要把方法换成find_next_siblings()(返回所有后续符合要求的同级元素列表),取列表第一个元素即可:
target_tr = boat_tr.find_next_siblings('tr', class_='bottomline')[0]
该方法只会在当前
boattr的后续同级节点范围内检索,完全不会匹配到页面其他位置同类名的tr、div元素,刚好适配你的需求。
内容的提问来源于stack exchange,提问作者moawwad
相关产品推荐
相关产品推荐

