我想下载一些托管在网站上的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://****/')
答案 0 :(得分:2)
来自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
来传输给定文件。您可以组合这些功能来完成任务。