将urllib下载转换为使用请求

Dav*_*542 0 python python-requests

我该如何使用requests

urllib.urlretrieve('ftp://USER:pass@i.website.net/upload/file.csv', filepath)
Run Code Online (Sandbox Code Playgroud)

如果我尝试做一个requests.get(),我会收到一个错误requests.exceptions.InvalidSchema: No connection adapters were found for 'ftp://.

Mar*_*ers 5

您不能使用requests通过FTP下载文件.从requests文档:

Requests是一个用Python编写的Apache2许可HTTP库,供人类使用.

这个库可以插拔的,我注意到有一个requests-ftp项目,但这不过是一个黑客,因为没有维护状态.从文档:

不提供:

  • 连接池!每个请求有一个新连接和多个命令,包括身份验证.效率极低.

requests.get('http://..', stream=True)请求不同,加载项也不适合下载大文件,因为所有数据都加载到内存中.

  • @ David542:为什么这么傻?FTP是一种不同的协议.浏览器和`urllib`支持它,因为他们决定支持多种协议以允许更广泛的URL方案,但是`requests`只关注HTTP. (2认同)