如何在Beautiful Soup的find_all('td')中排除带有colspan=7的标签?
如何用BeautifulSoup排除带有colspan=7属性的td标签
当然可以,有两种简单的方式实现这个需求:
方法1:在find_all中直接添加筛选逻辑
利用find_all支持自定义筛选函数的特性,用lambda表达式过滤掉带有colspan="7"的td标签:
Data = soup.find_all('td', lambda tag: tag.get('colspan') != '7')
方法2:先获取所有td再过滤
如果觉得lambda不够直观,也可以先获取全部td标签,再通过列表推导式排除目标元素:
all_td = soup.find_all('td') Data = [td for td in all_td if td.get('colspan') != '7']
补充说明
tag.get('colspan')会返回对应属性的值,如果标签没有colspan属性,会返回None,因此!= '7'的判断会同时保留没有colspan属性和colspan属性值不等于7的td标签,完全符合你的需求。
内容的提问来源于stack exchange,提问作者Thekra
相关产品推荐
相关产品推荐

