使用BeautifulSoup提取指定class表格tr的data-pricer属性值问题
问题1:仅提取class为basic-supp的表格下的data-pricer值
你可以先定位到目标table标签,再在该标签的子节点下查找tr元素,不要全局查找所有tr。
问题2:KeyError报错解决
报错原因是完整HTML里存在部分tr标签没有data-pricer属性,直接取tag.attrs['data-pricer']就会抛出键不存在的错误。可以通过两种方式处理:要么筛选仅包含该属性的tr标签,要么用dict.get()方法取值,无属性时直接跳过。
修正后完整代码
from bs4 import BeautifulSoup with open('file.html', 'r') as f: contents = f.read() soup = BeautifulSoup(contents, 'lxml') # 先定位class为basic-supp的目标table target_table = soup.find('table', class_='basic-supp') # 仅在目标table下查找带有data-pricer属性的tr tags = target_table.find_all('tr', attrs={'data-pricer': True}) for tag in tags: # get方法兜底,进一步避免异常 print(tag.get('data-pricer'))
简化HTML示例运行输出
41.87
58.12
内容的提问来源于stack exchange,提问作者neznajut
相关产品推荐
相关产品推荐

