2015-08-06 3 views
0

Я пытаюсь загрузить файл с ftp-сервера, но не смог подключиться. Вот структура кода и сообщение об ошибке. Что я делаю не так? Руководство пользователя сайта дает инструкции для входа в систему как «анонимный» с вашим адресом электронной почты в качестве пароля.Python v3.4.3 ftp connection failed

server = "ftp://ftp.sec.gov/" 
directory = "edgar/data/" 
filename = "nameoffile.txt" 

from ftplib import FTP 
ftp = FTP(server, 'anonymous', '[email protected]') #Set server address 

Тогда это выскакивает:

Traceback (most recent call last): 
    File "<pyshell#19>", line 1, in <module> 
ftp = FTP(server) 
    File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/ftplib.py", line 118, in __init__ 
self.connect(host) 
    File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/ftplib.py", line 153, in connect 
source_address=self.source_address) 
    File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/socket.py", line 512, in create_connection 
raise err 
    File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/socket.py", line 503, in create_connection 
sock.connect(sa) 
ConnectionRefusedError: [Errno 61] Connection refused 

ответ

0

Я не получаю ту же ошибку, как вы, однако, FTP не поддерживает URL-адреса в качестве способа определения удаленного FTP-сервера. Вместо этого требуется имя хоста или IP-адрес:

>>> from ftplib import FTP 
>>> ftp = FTP('ftp.sec.gov', 'anonymous', '[email protected]') 
>>> ftp.dir() 
-rw-r--r-- 1 root  root   369 Nov 2 2009 README.html 
-rw-r--r-- 2 root  root   749 Aug 15 2000 README.txt 
d--x--x--x 2 root  wheel  4096 Jul 30 1998 bin 
drwxrwxr-x 15 1024  106   4096 Aug 6 02:01 edgar 
d--x--x--x 2 root  wheel  4096 Aug 14 2000 etc 
lrwxrwxrwx 1 root  root   33 Nov 16 2012 index.htm -> /usr/local/web/index.nobrowse.htm 
lrwxrwxrwx 1 root  root   6 Nov 16 2012 pub -> /edgar 
-rw-r--r-- 1 root  root   86 Sep 3 2010 robots.txt 
d--x--x--x 3 root  root   4096 Oct 26 2000 usr 
drwxr-xr-x 2 root  bin   4096 Oct 14 1999 y2kforms 
+0

Я попытался настроить, исходя из ваших рекомендаций, но все равно получаю сообщение об ошибке. Первые две ошибки, возникающие на линиях 118 и 153, сохраняются, но я оставил их для краткости. Файл «/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/socket.py», строка 494, в create_connection для res в getaddrinfo (хост, порт, 0, SOCK_STREAM): Файл «/ Библиотека/Рамки/Python.framework/Версии/3.4/lib/python3.4/socket.py ", строка 533, в getaddrinfo для res в _socket.getaddrinfo (хост, порт, семья, тип, прото, флаги): socket.gaierror: [Errno 8] nodename или servname предоставлено или неизвестно – Madsen

+0

Итак, теперь это другая ошибка. Ваша система не может разрешить имя хоста IP-адресу. Попробуйте использовать IP-адрес, '162.138.208.11'. Если это сработает, вам нужно выяснить, почему Python не может решить имя хоста. Можете ли вы получить доступ к сайту FTP с помощью URL-адреса в своем вопросе с того же компьютера, используя ваш браузер? – mhawke

+0

Хорошо работает при использовании IP-адреса ... Я также могу получить доступ к FTP-сайту, используя мой браузер и URL-адрес выше. – Madsen