【问题标题】:Download file from FTP server using a SOCKS 5 proxy in Python在 Python 中使用 SOCKS 5 代理从 FTP 服务器下载文件
【发布时间】:2021-04-05 07:45:10
【问题描述】:

我需要使用 Python 从 FTP 服务器中提取文件。我曾尝试使用 ftplib,但在使用代理时它似乎不起作用。我也尝试过使用 ftp-proxy-client 包,它似乎也不起作用。

我已经使用了这些凭据。

ftp_adress = "XXX.XXX.XXX.XX"
ftp_user = "FTP_user"
ftp_password = "FTP_password"
ftp_port = "XXX"
ftp_path = "path"
file_name = "file_name.xlsx"
local_path = "local_path/file_name.xlsx"
proxy = "proxy_name.com"
proxy_port = "XXXX"

我试过的代码是:

from ftp_proxy_client import FtpProxy

ftp_proxy = FtpProxy(host=proxy, port=proxy_port)

ftp_client = ftp_proxy.connect('ftp_adress', 
                               port=ftp_port, 
                               login=ftp_user, 
                               password=ftp_password)

fp = ftp_client.download(path=f"{ftp_path}/{file_name}")
with open(local_path, 'wb') as file:
    file.write(fp.read())

但我最终得到了这个错误:

FtpProxyError: 连接代理服务器失败

【问题讨论】:

    标签: python proxy ftp ip-address


    【解决方案1】:

    安装PySocks并使用它的set_default_proxy

    socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, ip, port)
    

    从那里,您使用纯 ftplib 代码,就好像您直接连接到 FTP 服务器一样。

    How to make python Requests work via socks proxy

    【讨论】:

      猜你喜欢
      • 2012-07-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-21
      • 1970-01-01
      • 1970-01-01
      • 2014-11-21
      • 1970-01-01
      相关资源
      最近更新 更多