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

爬取英超球员进球数据时出现NoneType无text属性的AttributeError

爬取英超官网进球数据时的AttributeError错误解决

错误原因

你用soup.find_all('tr')抓了页面所有表格行,但不是每一行都有class为playerName的a标签(比如表头行、空行),当new_test.find(...)找不到目标元素时会返回None,直接调用.text就会触发AttributeError。去掉.text只是打印了None对象,所以没报错,但也拿不到有用的球员名字。

解决办法

办法一:先检查元素是否存在,再取文本

修改循环代码,先判断找到的标签不为空,再获取文本:

for new_test in new_tests:
    player_tag = new_test.find('a', class_='playerName')
    if player_tag:
        print(player_tag.text.strip())

办法二:直接定位数据行,跳过无关行

观察页面结构,真正的球员数据行一般有专属的class(比如截图里的行可能带tableData类,你可以用浏览器开发者工具确认),直接筛选这类行:

# 替换原来的find_all('tr'),只抓数据行
new_tests = soup.find_all('tr', class_='tableData')
for new_test in new_tests:
    print(new_test.find('a', class_='playerName').text.strip())

额外提示

英超官网可能有反爬或动态加载机制,如果你用requests.get拿到的页面内容不全,后续可以试试用selenium模拟浏览器加载页面,确保能获取到完整的渲染后内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 23:10:31