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

使用pd.read_html访问需接受Cookie站点报HTTP 500错误如何解决

问题原因

你遇到的500错误确实是站点新增的Cookie校验规则导致的:当前英格兰银行站点对所有未携带Cookie同意标识的请求,会直接返回服务端错误,原生无参数的pd.read_html()发起的默认请求不带任何自定义头和Cookie,因此会被拦截。

可行方案(完全基于pandas原生能力,无需引入requests/BeautifulSoup)

pd.read_html()本身支持传入urllib.request.Request类型的请求对象作为输入参数,你只需要提前构造带合规Cookie和UA头的请求对象,再传入read_html()即可,仍可复用pandas内置的表格解析逻辑,无需自己处理HTML结构:

import pandas as pd
import urllib.request

# 构造符合站点要求的请求头,包含Cookie同意标识和常规UA头
headers = {
    'Cookie': 'cookies_policy=accepted; cookies_preferences_set=true',
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36'
}
# 构造请求对象
req = urllib.request.Request(
    'https://www.bankofengland.co.uk/boeapps/database/Rates.asp?Travel=NIxIRx&into=GBP',
    headers=headers
)

# 直接传入请求对象到read_html,无需额外解析逻辑
df = pd.read_html(req)[0]

补充说明

目前无法实现仅靠一行无参数的pd.read_html()完成请求,因为站点的访问限制要求必须携带合规的请求头,上述方案已经是和原生read_html使用差异最小、额外依赖最少的实现方式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 10:24:00