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

使用BeautifulSoup爬取网站指定表格时报NoneType无text属性错误如何解决

错误触发原因
  • 核心原因是遍历筛选出的表格时,未做存在性判断就直接调用<b>标签的text属性:你用筛选条件拿到的所有表格中,并不是每一个表格内部都包含<b>标签,当遍历到没有<b>标签的表格时,t.find('b')会返回None,对空对象调用text属性就会触发该报错。
  • 额外存在的隐性问题:你已经初始化了requests.Session对象并更新了请求头,但实际发起请求时仍使用全局的requests.get,没有复用会话配置,可能增加被网站反爬拦截的概率。
  • 匹配逻辑缺陷:即使表格内存在<b>标签,标签文本可能带有首尾空格,直接用全等匹配也会出现匹配失败的情况。
修复后的可运行代码
import requests
from bs4 import BeautifulSoup

headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36'}
link = 'https://www.soccerstats.com/pmatch.asp?league=italy&stats=145-7-5-2022'
# 复用会话发起请求
s = requests.Session()
s.headers.update(headers)
response = s.get(link)

soup = BeautifulSoup(response.text, 'html.parser')
standings_forms = soup.find_all('table', border='0', cellspacing='0', cellpadding='0', width='100%')

for t in standings_forms:
    # 先判断b标签存在,再取文本去空格后匹配
    b_tag = t.find('b')
    if b_tag and b_tag.text.strip() == 'Form table (last 8)':
        print(t)
        # 如果需要提取表格内数据可以在这一步继续解析

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 08:45:04