def download(url, file): import urllib, time start_t = time.time() 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

def download(url, file): import urllib, time start_t = time.time()

Поиск

URL = 'http://download.fedora.redhat.com/pub/fedora/linux/core/3/SRPMS/' + FILE

 

def download(url, file): import urllib, time start_t = time.time()

 

def progress(bl, blsize, size): dldsize = min(bl*blsize, size) if size != -1:

 

p = float(dldsize) / size try:

 

elapsed = time.time() - start_t est_t = elapsed / p - elapsed

 

except: est_t = 0

print "%6.2f %% %6.0f s %6.0f s %6i / %-6i bytes" % ( p*100, elapsed, est_t, dldsize, size)

 

else:

print "%6i / %-6i bytes" % (dldsize, size)

 

urllib.urlretrieve(URL, FILE, progress)

 

download(URL, FILE)

 

Эта программа выведет примерно следующее(процент от полного объема закачки,прошедшие секунды,предполагаемое оставшееся время,закачанные байты,полное количество байтов):

 

0.00

%

s

s

/ 6952309 bytes

0.12

%

s

s

/ 6952309 bytes

0.24

%

s

s

/ 6952309 bytes

0.35

%

s

s

/ 6952309 bytes

0.47

%

s

s

/ 6952309

bytes

0.59

%

s

s

/ 6952309

bytes

0.71

%

s

s

/ 6952309

bytes

0.82

%

s

s

/ 6952309

bytes

...

 

 

 

 

 

 

 

 

 

Функции для анализа URL

 

Согласно документуRFC 2396URLдолжен строиться по следующему шаблону:

 

scheme://netloc/path;parameters?query#fragment

 

где

 

scheme

 

Адресная схема.Например: http, ftp, gopher.


 


netloc

 

Местонахождение в сети.

 

path

 

Путь к ресурсу.

 

params

 

Параметры.

 

query

 

Строка запроса.

 

frag

 

Идентификатор фрагмента.

 

Одна из функций уже использовалась для формированияURL -urllib.urlencode().Кроме нее в модуле urllib имеются и другие функции:

 

quote(s, safe='/')

 

Функция экранирует символы вURL,чтобы их можно было отправлять наweb-сервер.Она предназначена для экранирования пути к ресурсу,поэтому оставляет '/' как есть.Например:

 

>>> urllib.quote("rnd@onego.ru")

'rnd%40onego.ru'

>>> urllib.quote("a = b + c") 'a%20%3D%20b%20%2B%20c'

>>> urllib.quote("0/1/1")

'0/1/1'

>>> urllib.quote("0/1/1", safe="") '0%2F1%2F1'



Поделиться:


Последнее изменение этой страницы: 2024-06-27; просмотров: 61; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.217.128 (0.007 с.)