Python3通过代理连接到FTP

Python3通过代理连接到FTP,python,python-3.x,proxy,ftp,python-3.7,Python,Python 3.x,Proxy,Ftp,Python 3.7,我正在研究如何使用python3连接到ftp服务器并检查其内容——关键是我需要提供代理设置(通过代理服务器连接) 我不需要提供代理用户名和密码,只有http地址和端口8080 当连接到ftp(端口21)时,我需要提供用户名和密码 我对PowerShell有点在行,它做这件事没有太多麻烦。我可以使用加载winscp,添加代理参数,然后连接到ftp $sessionOptions.AddRawSettings("ProxyHost","My_PROXY") 然而,我仍然在学习python3,同样

我正在研究如何使用python3连接到ftp服务器并检查其内容——关键是我需要提供代理设置(通过代理服务器连接)

我不需要提供代理用户名和密码,只有http地址和端口8080 当连接到ftp(端口21)时,我需要提供用户名和密码

我对PowerShell有点在行,它做这件事没有太多麻烦。我可以使用加载winscp,添加代理参数,然后连接到ftp

$sessionOptions.AddRawSettings("ProxyHost","My_PROXY") 
然而,我仍然在学习python3,同样的任务真的让我困惑。到目前为止,我知道ftplib不处理代理,我应该使用urllib3,但我找不到好的例子

from ftplib import FTP

site = FTP('proxy_address.com:8080') # throws errors
site.set_debuglevel(1)
msg = site.login('username@ftp.someserver.net', 'password')
site.cwd('/')

  File "<stdin>", line 1, in <module>
  File "C:\Program Files\Python37\lib\ftplib.py", line 117, in __init__
    self.connect(host)
  File "C:\Program Files\Python37\lib\ftplib.py", line 152, in connect
    source_address=self.source_address)
  File "C:\Program Files\Python37\lib\socket.py", line 707, in create_connection
    for res in getaddrinfo(host, port, 0, SOCK_STREAM):
  File "C:\Program Files\Python37\lib\socket.py", line 748, in getaddrinfo
    for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
socket.gaierror: [Errno 11001] getaddrinfo failed
我坚信,在python中,通过代理实现ftp连接有一些简单的方法,但我根本没有意识到这一点。你能分享一下你在这个话题上的经验吗

from urllib3 import ProxyManager

proxy = ProxyManager('http://my_http_proxy_address:8080')
proxy.request('ftp://username:password@server.com')