wget url 不工作,而浏览器正在正确下载它

wget url not working, while browser is downloading it properly

我想从这个 url 下载一个 7z 文件:'ftp://ftp.mtps.gov.br/pdet/microdados/NOVO%20CAGED/Movimenta%E7%F5es/2020/Junho/CAGEDMOV202001.7z'

如果我将它粘贴到浏览器上,它会正确下载。但是,当我使用 wget.download(url, 'caged.7z') 方法时,它会抛出以下错误:

<urlopen error ftp error: error_perm('550 The system cannot find the path specified. ')>

有人知道怎么回事吗?

您需要解码实体‰20、%e7 和 %f5,因为 curl 不会像浏览器那样为您解码 (table)。

您可以为此使用 urllib 的 unquote()

import urllib.parse

...

url = urllib.parse.unquote(your_url)