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

pd.read_html匹配不到表格时返回None失败,报错ValueError

解决pd.read_html查找指定表格时的ValueError问题

问题根源

你的代码报错是因为pd.read_html()在没有匹配到指定表格时,不会返回空列表,而是直接抛出ValueError异常,所以你写的if pd.read_html(...) else None逻辑根本没机会执行,直接触发了报错。

修正后的代码

要实现“找不到返回None,找到则输出表格”的需求,应该用try-except块捕获异常:

import pandas as pd

main_url = 'https://fbref.com/en/comps/9/2000-2001/2000-2001-Premier-League-Stats'

try:
    # 尝试读取匹配的表格
    squad_advanced_goalkeeping = pd.read_html(main_url, match='Squad Advanced Goalkeeping')[0]
    # 找到表格则打印
    print(squad_advanced_goalkeeping)
except ValueError:
    # 未找到表格时返回None
    squad_advanced_goalkeeping = None
    print("未找到匹配的表格,返回None")

补充说明

  • 原网页中的'Squad Advanced Goalkeeping'表格可能需要检查是否存在拼写错误,或者该页面是否真的包含这个表格——你可以手动打开网页确认表格的准确标题,确保match参数的字符串和表格标题完全一致(注意大小写、空格)。
  • 如果网页有反爬机制,可能需要添加请求头模拟浏览器访问,比如:
import requests

headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36'}
response = requests.get(main_url, headers=headers)
squad_advanced_goalkeeping = pd.read_html(response.text, match='Squad Advanced Goalkeeping')[0]

不过先优先确认表格标题是否正确,再考虑反爬问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 10:01:14