You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用BeautifulSoup筛选无class属性的<tr>标签爬取Fbref球员数据

解决Fbref英超球员数据爬取中筛选无class属性标签的问题

以下两种方法可以精准筛选出无class属性的标签,避开带class="thead"的表头行:

  • 方法一:使用CSS选择器直接过滤
    利用:not([class])伪类选择器,直接排除所有带有class属性的元素,代码示例:

    from bs4 import BeautifulSoup
    
    # 假设已完成页面解析得到soup对象
    target_rows = soup.select('tr:not([class])')
    

    这个选择器会自动跳过所有带class的表头行,只保留目标数据行。

  • 方法二:遍历判断class属性
    遍历所有标签,手动检查是否不存在class属性(或class为空),代码示例:

    target_rows = []
    for tr in soup.find_all('tr'):
        # get('class')返回None表示无class属性,返回空列表表示class为空
        if not tr.get('class'):
            target_rows.append(tr)
    

补充说明

之前用class_=None无效,大概率是因为部分标签可能存在隐藏的空class属性(比如<tr class="">),而上述两种方法能覆盖这种情况。筛选完成后,循环遍历target_rows时,就能正常获取到带标签的数据行,不会再出现'NoneType' object has no attribute 'a'的报错。

内容的提问来源于stack exchange,提问作者Kamal Moha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 06:36:35