BoE 网站使用 Pandas read_csv 时出现 HTTP 错误 500

HTTP Error 500 raised when using Pandas read_csv for BoE's website

我目前正在尝试使用他们的 API 从英格兰银行的网站收集数据,但是,当我通过 URL 通过 pandas.read_csv( ) 或 requests.get()。我在下面包含了一个示例:

pandas.read_csv("https://www.bankofengland.co.uk/boeapps/database/_iadb-fromshowcolumns.asp?csv.x=yes&Datefrom=01/Jan/1963&Dateto=13/Jan/2022&SeriesCodes=LPMAUYN&CSVF=TN&UsingCodes=Y&VPD=Y&VFD=N")

奇怪的是,如果在 his/her 浏览器中手动输入上述 URL ,那么会下载 CSV 文件并且不会出现错误。此外,这在过去曾经有效,但现在似乎不再如此。

我是不是做错了什么,或者这只是服务器端的问题?

提前致谢。

浏览器总是在 headers 中发送数据,您也可以使用请求来发送数据。

请求低于 returns 代码 200。

import requests

url = "https://www.bankofengland.co.uk/boeapps/database/_iadb-fromshowcolumns.asp?" \
      "csv.x=yes&Datefrom=01/Jan/1963&Dateto=13/Jan/2022&SeriesCodes=LPMAUYN&CSVF=TN&UsingCodes=Y&VPD=Y&VFD=N"

headers = {
    'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) '
                  'AppleWebKit/537.36 (KHTML, like Gecko) '
                  'Chrome/54.0.2840.90 '
                  'Safari/537.36'
}

response = requests.get(url, headers=headers)

print(response.text)

输出:

DATE,LPMAUYN
30 Jun 1982,145329
31 Jul 1982,146842
31 Aug 1982,148277
30 Sep 1982,149702
31 Oct 1982,150555
30 Nov 1982,151983
31 Dec 1982,153887
...
31 May 2021,2894480
30 Jun 2021,2912525
31 Jul 2021,2917566
31 Aug 2021,2933716
30 Sep 2021,2954865
31 Oct 2021,2972962
30 Nov 2021,2992824