Я смотрю, как я могу использовать 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
Ниже приведена еще одна из нескольких попыток, но это выдает ошибку, что я Отсутствующий аргумент 'url'.
from urllib3 import ProxyManager
proxy = ProxyManager('http://my_http_proxy_address:8080')
proxy.request('ftp://username:password@server.com')
Я твердо уверен, что в python есть несколько простой способ установить ftp-соединение через прокси, но я просто не знаю об этом. Не могли бы вы поделиться своим опытом в этой топи c?