python - 如何使用Python从支持ftp的网站自动下载文件?

标签 python ftp

我想下载网站上托管的大约 1500 个文件。该网站受用户名和密码保护。我有用户名和密码。如果我手动下载所有这些单独的 1500 个文件,那么这将是一个巨大的忙碌。所以我想通过Python自动下载驻留在服务器中的所有文件。

可以通过python吗?

对此的任何帮助表示赞赏。 非常感谢。

import urllib.request
auth_handler = urllib.request.HTTPBasicAuthHandler()
auth_handler.add_password(url='http://****/',
                      user='****',
                      passwd='****')
opener = urllib.request.build_opener(auth_handler)
urllib.request.install_opener(opener)
urllib.request.urlopen('http://****/')

最佳答案

来自Python ftplib documentation :

>>> from ftplib import FTP
>>> ftp = FTP('ftp.debian.org')     # connect to host, default port
>>> ftp.login()                     # user anonymous, passwd anonymous@
'230 Login successful.'
>>> ftp.cwd('debian')               # change into "debian" directory
>>> ftp.retrlines('LIST')           # list directory contents
-rw-rw-r--    1 1176     1176         1063 Jun 15 10:18 README
...
drwxr-sr-x    5 1176     1176         4096 Dec 19  2000 pool
drwxr-sr-x    4 1176     1176         4096 Nov 17  2008 project
drwxr-xr-x    3 1176     1176         4096 Oct 10  2012 tools
'226 Directory send OK.'
>>> ftp.retrbinary('RETR README', open('README', 'wb').write)
'226 Transfer complete.'
>>> ftp.quit()

如您所见,您可以使用 ftp.retrlines 来获取有关文件名的信息,并使用 ftp.retrbinary 来传输给定文件。您可以组合这些功能来完成您的任务。

关于python - 如何使用Python从支持ftp的网站自动下载文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22855527/

相关文章:

Python:循环元组并将每个值插入到数据框中

Python numpy 数组负索引

python - 如何在 python 中使用 xlsx 包格式化 excel 中的特定单元格

c# - 使用 opencf.net.ftp 在 c# 中使用 ftp 上传/下载 for windows mobile 6.5

ssl - 数据连接的FTPS客户端程序

javascript - 从 ftp 文件夹连续音频广播

delphi - IdFtp.List 偶尔会抛出套接字错误 #10054

python - virtualenv 中的 pip 找不到 ctypes

python - 循环中的python类

shell - 使用 crypt 密码生成的 Useradd