Я использовал модуль mechanize
и его метод Browser.retrieve (). В прошлом он занимал 100% процессор и загружал вещи очень медленно, но в некоторых последних версиях исправлена эта ошибка и работает очень быстро.
Пример:
import mechanize
browser = mechanize.Browser()
browser.retrieve('http://www.kernel.org/pub/linux/kernel/v2.6/testing/linux-2.6.32-rc1.tar.bz2', 'Downloads/my-new-kernel.tar.bz2')
Механизм основан на urllib2 , поэтому urllib2 также может иметь аналогичный метод ... но я не могу найти его сейчас.