如何用BeautifulSoup获取无ID的tbody标签下tr子元素的数量?
解决方法
你可以借助已有id的table元素来定位tbody,再统计其下的tr数量,这里提供两种实用方式:
方法一:分步定位
先通过table的id找到目标表格,再逐层定位到tbody和其中的tr元素:from bs4 import BeautifulSoup # 假设html变量存储了你的网页HTML内容 soup = BeautifulSoup(html, 'html.parser') # 定位到id为MyTable的表格 my_table = soup.find('table', id='MyTable') # 获取表格内的tbody元素,再查找所有tr tbody_tr_list = my_table.find('tbody').find_all('tr') # 统计tr数量 tr_count = len(tbody_tr_list) print(tr_count)方法二:CSS选择器一步到位
利用CSS层级选择器直接获取目标tr,代码更简洁:from bs4 import BeautifulSoup soup = BeautifulSoup(html, 'html.parser') # 直接选中#MyTable表格下tbody里的所有tr tbody_tr_list = soup.select('#MyTable tbody tr') tr_count = len(tbody_tr_list) print(tr_count)
这两种方式都不需要tbody有id,因为已经通过父元素table的id锁定了范围,能精准获取目标内容。
内容的提问来源于stack exchange,提问作者NukeSkull
相关产品推荐
相关产品推荐

