我想下载网站上托管的大约 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/