def DownloadFile(url, filename):
    urllib.urlretrieve(url, filename);
    pass
    
DownloadFile("http://www.site.com/download.php/361809/HellboyII-6ec.avi.torrent","/tmp/")
Ошибка:
Traceback (most recent call last):
  File "/home/nws/Desktop/lan/auth.py", line 99, in ?
    DownloadFile("http://www.site.com/download.php/361809/HellboyII-6ec.avi.torrent","/tmp/")
  File "/home/nws/Desktop/lan/auth.py", line 96, in DownloadFile
    urllib.urlretrieve(url, filename);
  File "/usr/lib/python2.4/urllib.py", line 89, in urlretrieve
    return _urlopener.retrieve(url, filename, reporthook, data)
  File "/usr/lib/python2.4/urllib.py", line 225, in retrieve
    tfp = open(filename, 'wb')
IOError: [Errno 21] Is a directory: '/tmp/'
Если я правельно понял 2-ой параметр(filename) urllib.urlretrieve(url, filename); - директория
тогда почему выходит эта ошибка IOError: Is a directory: '/tmp/ ?

Last edited July 20, 2008, 3 p.m.

нет, это именно имя файла.
Взял код отсюда:
http://habrahabr.ru/blog/development/36634.html

def DownloadFile(url, filename):
    urllib.urlretrieve(url, filename);
    pass
    
def GetLocalFileNameFromURL(fullpath):

    (filepath, filename) = os.path.split(urlparse.urlparse(fullpath).path)

    return downloadDir + filename

    
downloadDir = "/tmp/"
URLToDownload = "www.site.com/download.php/361809/HellboyII-6ec.avi.torrent";
localFilePath = GetLocalFileNameFromURL(URLToDownload)
DownloadFile(url=URLToDownload,filename=localFilePath)
Что это за ошибка ? =)

Traceback (most recent call last):
  File "/home/nws/Desktop/lan/auth.py", line 105, in ?
    localFilePath = GetLocalFileNameFromURL(URLToDownload)
  File "/home/nws/Desktop/lan/auth.py", line 98, in GetLocalFileNameFromURL
    (filepath, filename) = os.path.split(urlparse.urlparse(fullpath).path)
AttributeError: 'tuple' object has no attribute 'path'
питон у тебя наверное старый. Атрибут path - появился начиная с версии 2.5, до нее - просто массив возвращался.

поэтому так попробуй
(filepath, filename) = os.path.split(urlparse.urlparse(fullpath)[2])
А вообще - это кривой код.
Бывают ссылки, не содержащие имени файла.

Last edited July 20, 2008, 5:37 p.m.

Я посылаю запрос:
urllib.urlretrieve("http://www.site.com/download.php/361809/HellboyII-6ec.avi.torrent","/tmp/HellboyII-6ec.avi.torrent")
Он мне скачивает пустой файл, т.е. он просит cookie
У меня кукисы лежат в COOKIEFILE = 'cookies.lwp'
Содержание этого файла:
#LWP-Cookies-2.0
Set-Cookie3: phpsessid2=e9bcf59cbdf2f731df0cc621db7cf44f; path="/"; domain=".ste.com"; path_spec; domain_dot; expires="2011-04-14 12:19:10Z"; version=0
Получаю Set-Cookie3: ...
if os.path.isfile(COOKIEFILE):
	f = open(COOKIEFILE)
	try:
		for line in f:
			cookie = line[16:]
	finally:
    		f.close()

else:
	print "COOKIEFILE not found"
headers = {'Cookie': cookie}
Вопрос:
Можно как-то через urllib.urlretrieve послать Cookie?
Через urlretrieve вряд ли, а вообще: http://www.google.ru/search?q=urllib+cookie&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:en-US:official&client=firefox-a