使用 urllib.request.urlretrieve 从 Web 复制文件,但没有粘贴任何内容

copying files from web using urllib.request.urlretrieve, but nothing is pasted

我正在尝试使用以下代码从网站复制文件并保存在本地。但是我的本地驱动程序显示保存的文件是空的(即每个 excel 文件已创建但包含 1 KB 内存)。关于为什么这不起作用的任何评论?

import urllib.request
import pathlib

folder_euronext = "C:/myfolder/"
url_euronext = "https://live.euronext.com/sites/default/files/statistics/factbook/yearly/"
for i in range(2013,2020):
    filename = "euronext_fact_book_"+str(i)+".xls" if i <= 2016 else "euronext_fact_book_"+str(i)+".xlsx"
    print(url_euronext+filename)
    if pathlib.Path(folder_euronext+filename).exists():
        print(filename,"exists...")
    else: 
        urllib.request.urlretrieve(url_euronext+filename, folder_euronext+filename)
        print("Copying and pasting",filename)

试试下面这个。您需要安装 requests

import requests
import pathlib
import time

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

folder_euronext = pathlib.Path(".")

url_euronext = "https://live.euronext.com/sites/default/files/statistics/factbook/yearly/"
for i in range(2013,2020):
    filename = "euronext_fact_book_"+str(i)+".xls" if i <= 2016 else "euronext_fact_book_"+str(i)+".xlsx"
    print(url_euronext+filename)
    target = folder_euronext / filename
    if pathlib.Path(target).exists():
        print(filename,"exists...")
    else: 
        resp = requests.get(url_euronext+filename, headers=headers)
        with open(target, 'wb') as f:
            f.write(resp.content)

        print("Copying and pasting",filename)
        
    time.sleep(2.0)