我需要编写一些使用 ftp 代理的 python ftp 代码。代理不需要身份验证,但我连接的 ftp 服务器需要。我有以下代码,但收到“I/O 错误(ftp 错误):501 USER 格式:代理用户:auth-method@destination。正在关闭连接。”错误。我的代码是:
import urllib2
proxies = {'ftp':'ftp://proxy_server:21'}
ftp_server = ' ftp.somecompany.com '
ftp_port='21'
username = 'aaaa'
password = 'secretPW'
password_mgr = urllib2.HTTPPasswordMgrWithDefaultRealm( )
top_level_url = ftp_server
password_mgr.add_password(None , top_level_url, username, password)
proxy_support = urllib2.ProxyHandler(proxies )
handler = urllib2.HTTPBasicAuthHandler(password_mgr )
opener = urllib2.build_opener(proxy_support )
opener = urllib2.build_opener(handler )
a_url = 'ftp://' + ftp_server + ':' + ftp_port + '/'
print a_url
try:
data = opener.open(a_url )
print data
except IOError, (errno, strerror):
print "I/O error(%s): %s" % (errno, strerror)
如果我能得到任何帮助,我将不胜感激。
我使用以下看起来相似的代码块,除了我在我使用的 top_level_url
中包含协议(protocol)(当然它是 http)。
您也可以尝试在每次 build_opener
调用后调用 install_opener
,然后使用 urllib2.urlopen
auth_handler = urllib2.HTTPBasicAuthHandler()
auth_handler.add_password(realm='RESTRICTED ACCESS',
uri='http://website.com',
user='username',
passwd='password')
opener = urllib2.build_opener(auth_handler)
urllib2.install_opener(opener)
urllib2.urlopen('http://website.com/....')
我是一名优秀的程序员,十分优秀!