import urllib2
mp3file = urllib2.urlopen("http://www.example.com/songs/mp3.mp3")
with open('test.mp3','wb') as output:
output.write(mp3file.read())
wb
в open('test.mp3','wb')
открывает файл (и стирает любой существующий файл) в режиме двоичного счета, таким образом, можно сохранить данные с ним вместо просто текста.
Я встречал ссылки на возможность использования прокси-сервера авторизации NTLM для решения подобных проблем.