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

使用Beautiful Soup处理特定表格时出现NoneType错误

问题分析与解决

问题原因

section-PLANTS表格里并非所有<tr>行都包含<a>标签,当遍历到没有<a>的行时,r.find('a')会返回None,此时调用.contents[0]或.text自然会触发AttributeError。你之前执行print(r.find('a'))没发现问题,大概率是没遍历到那些不含<a>的行。

修复代码

在读取内容前先判断<a>标签是否存在:

plants_table = bs.find('table', id="section-PLANTS")
for r in plants_table.find_all('tr'):
    link = r.find('a')
    if link:  # 先确认标签存在
        print(link.contents[0])
        # 或者用print(link.get_text()),效果一致

补充说明

也可以用find_all('a')结合长度判断,或者用try-except捕获异常,但先判断对象是否为None是最直接高效的方式,能避免无意义的异常抛出。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 19:51:00