예제 #1
0
def baixar(qtd):
    """ busca e salva a quantidade ``qtd`` de bandeiras """
    qt_bytes = 0
    qt_arqs = 0

    for num, sigla in enumerate(ler_siglas(qtd), 1):
        # baixar bandeiras com inicial 'a' ou 'b'
        nome = sigla + '-lgflag.gif'
        print('\t%3d\t%s' % (num, nome))
        url = BASE_URL+nome
        with urllib.request.urlopen(url) as img_orig:
            img = img_orig.read()
            qt_bytes += salvar(nome, img)
            qt_arqs += 1

    return qt_bytes, qt_arqs

if __name__=='__main__':
    reportar(baixar)

"""
$ python sincrono.py 3
baixando 3 arquivos...
      1 aa-lgflag.gif
      2 ac-lgflag.gif
      3 ae-lgflag.gif
11889 bytes baixados em 3 arquivos
tempo transcorrido: 12.62s

"""
예제 #2
0
        print '\t\t\t%3d\t%s --> salvo' % (numero, nome)
        conj_baixar.discard(nome)
        if not conj_baixar:
            ioloop.IOLoop.instance().stop()

def faz_processar(nome, numero):
    def _interna(request):
        processar(request, nome, numero)
    return _interna

def baixar(qtd):
    """ busca a quantidade ``qtd`` de bandeiras """

    http_client = httpclient.AsyncHTTPClient()

    for num, sigla in enumerate(ler_siglas(qtd), 1):
        nome = sigla + '-lgflag.gif'
        print '\t%3d\t%s' % (num, nome)
        url = BASE_URL+nome
        proc = faz_processar(nome, num)
        conj_baixar.add(nome)
        http_client.fetch(url, proc)

    ioloop.IOLoop.instance().start()
    return qt_bytes, qt_arqs

if __name__=='__main__':
    reportar(baixar)