首页 > 解决方案 > 使用 wget 下载 CSV

问题描述

嗨,我是 python 新手,正在研究英国 CV-19 爆发的模型。

目前我正在编写一个程序来自动下载英国政府最新的死亡统计数据。

到目前为止,这是我的代码:

import wget

url = "https://coronavirus.data.gov.uk/downloads/csv/coronavirus-cases_latest.csv"#

wget.download(url, 'C:/Users/Moshe/Downloads/Covid_19_uk_timeseries.csv')

在pycharm中运行它我得到:

C:\Users\Moshe\PycharmProjects\HelloWorld\venv\Scripts\python.exe C:/Users/Moshe/.PyCharmCE2019.1/config/scratches/Get_CV19_UK_stats.py
Traceback (most recent call last):
  File "C:/Users/Moshe/.PyCharmCE2019.1/config/scratches/Get_CV19_UK_stats.py", line 6, in <module>
    wget.download(url, 'C:/Users/Moshe/Downloads/Covid_19_uk_timeseries.csv')
  File "C:\Users\Moshe\PycharmProjects\HelloWorld\venv\lib\site-packages\wget.py", line 526, in download
    (tmpfile, headers) = ulib.urlretrieve(binurl, tmpfile, callback)
  File "C:\Users\Moshe\AppData\Local\Programs\Python\Python37\lib\urllib\request.py", line 247, in urlretrieve
    with contextlib.closing(urlopen(url, data)) as fp:
  File "C:\Users\Moshe\AppData\Local\Programs\Python\Python37\lib\urllib\request.py", line 222, in urlopen
    return opener.open(url, data, timeout)
  File "C:\Users\Moshe\AppData\Local\Programs\Python\Python37\lib\urllib\request.py", line 531, in open
    response = meth(req, response)
  File "C:\Users\Moshe\AppData\Local\Programs\Python\Python37\lib\urllib\request.py", line 641, in http_response
    'http', request, response, code, msg, hdrs)
  File "C:\Users\Moshe\AppData\Local\Programs\Python\Python37\lib\urllib\request.py", line 569, in error
    return self._call_chain(*args)
  File "C:\Users\Moshe\AppData\Local\Programs\Python\Python37\lib\urllib\request.py", line 503, in _call_chain
    result = func(*args)
  File "C:\Users\Moshe\AppData\Local\Programs\Python\Python37\lib\urllib\request.py", line 649, in http_error_default
    raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 308: Permanent Redirect

Process finished with exit code 1

我试图获取的文件可以在此页面上找到: https ://coronavirus.data.gov.uk/?_ga=2.157835066.1251021075.1589887735-1783596499.1585566366

为什么这行不通?我需要改变什么?

标签: pythoncsvwget

解决方案


您能否验证您的输出路径是否有效且可写?

尝试

import wget
import os

output_dir = 'C:/Users/Moshe/Downloads'
output_file = 'Covid_19_uk_timeseries.csv'

assert os.path.exists(output_dir)

url = "https://coronavirus.data.gov.uk/downloads/csv/coronavirus-cases_latest.csv"#

wget.download(url, out = os.path.join(output_dir,output_file))

推荐阅读