为英国央行网站使用 Pandas read_csv 时引发 HTTP 错误 500



我目前正试图使用他们的API从英格兰银行的网站收集数据,然而,当我通过pandas.read_csv((或requests.get((传递URL时,我不断收到错误500。我在下面包含了一个示例:

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")

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

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

提前谢谢。

浏览器总是在头中发送数据,您也可以在请求中发送数据。

下面的请求返回代码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

最新更新