Пример #1
0
def baixar(qtd):
    """ busca e salva a quantidade ``qtd`` de bandeiras """

    qt_bytes = 0
    qt_arqs = 0

    with concurrent.futures.ThreadPoolExecutor(max_workers=3) as executor:

        pendentes = {}
        for (numero, sigla) in enumerate(ler_siglas(qtd), 1):
            nome = sigla + '-lgflag.gif'
            pendentes[executor.submit(baixar_uma, nome)] = numero, nome
            print '\t%3d\t%s' % (numero, nome)

        for future in concurrent.futures.as_completed(pendentes):
            numero, nome = pendentes[future]
            try:
                bytes = future.result()
            except Exception as exc:
                print('gerou erro ao baixar %s (#%s): %s' % (nome, numero, exc))
            else:
                qt_bytes += salvar(nome, bytes)
                qt_arqs += 1
                print '\t\t\t%3d\t%s --> salvo' % (numero, nome)

    return qt_bytes, qt_arqs
Пример #2
0
def processar(nome, numero):
    global qt_bytes, qt_arqs
    url = BASE_URL + nome
    response = yield from aiohttp.request('GET', url)
    data = yield from response.read()
    qt_bytes += salvar(nome, data)
    qt_arqs += 1
    print('\t\t\t%3d\t%s --> salvo' % (numero, nome))
Пример #3
0
def processar(nome, numero):
    global qt_bytes, qt_arqs
    url = BASE_URL+nome
    response = yield from aiohttp.request('GET', url)
    data = yield from response.read()
    qt_bytes += salvar(nome, data)
    qt_arqs += 1
    print('\t\t\t%3d\t%s --> salvo' % (numero, nome))
Пример #4
0
def baixar_uma(nome, numero):
    global qt_bytes, qt_arqs
    url = BASE_URL+nome
    with contextlib.closing(urllib2.urlopen(url)) as img_orig:
        img = img_orig.read()
        qt_bytes += salvar(nome, img)
        qt_arqs += 1
        print '\t\t\t%3d\t%s --> salvo' % (numero, nome)
Пример #5
0
def baixar_uma(nome, numero):
    global qt_bytes, qt_arqs
    url = BASE_URL+nome
    with contextlib.closing(urllib2.urlopen(url)) as img_orig:
        img = img_orig.read()
        qt_bytes += salvar(nome, img)
        qt_arqs += 1
        print '\t\t\t%3d\t%s --> salvo' % (numero, nome)
Пример #6
0
def baixar_uma(nome, numero):
    global qt_bytes, qt_arqs
    url = BASE_URL + nome
    with urllib.request.urlopen(url) as img_orig:
        img = img_orig.read()
        qt_bytes += salvar(nome, img)
        qt_arqs += 1
        print('\t\t\t%3d\t%s --> salvo' % (numero, nome))
        conj_baixar.discard(nome)
Пример #7
0
def baixar_uma(nome, numero):
    global qt_bytes, qt_arqs
    url = BASE_URL+nome
    with urllib.request.urlopen(url) as img_orig:
        img = img_orig.read()
        qt_bytes += salvar(nome, img)
        qt_arqs += 1
        print('\t\t\t%3d\t%s --> salvo' % (numero, nome))
        conj_baixar.discard(nome)
Пример #8
0
 def processar(self, response):
     if response.error:
         print('Erro ao baixar %s: %r' % (nome, response.error))
     else:
         Processador.qt_bytes += salvar(self.nome, response.body)
         Processador.qt_arqs += 1
         print '\t\t\t%3d\t%s --> salvo' % (self.numero, self.nome)
         Processador.conj_baixar.discard(self.nome)
         if not Processador.conj_baixar:
             ioloop.IOLoop.instance().stop()
Пример #9
0
 def processar(self, response):
     if response.error:
         print('Erro ao baixar %s: %r' % (nome, response.error))
     else:
         Processador.qt_bytes += salvar(self.nome, response.body)
         Processador.qt_arqs += 1
         print '\t\t\t%3d\t%s --> salvo' % (self.numero, self.nome)
         Processador.conj_baixar.discard(self.nome)
         if not Processador.conj_baixar:
             ioloop.IOLoop.instance().stop()
Пример #10
0
def processar(response):
    global qt_bytes, qt_arqs
    nome = response.request.url[len(BASE_URL):]
    conj_baixar.discard(nome)
    if response.error:
        print('Erro ao baixar %s: %r' % (nome, response.error))
    else:
        qt_bytes += salvar(nome, response.body)
        qt_arqs += 1
        print '\t\t\t', nome, '--> salvo'
        if not conj_baixar:
            ioloop.IOLoop.instance().stop()
Пример #11
0
 def processar(self, response):
     if response.error:
         print 'Erro: ', response.error
         print '\tTentando de novo...', response.request.url
         http_client.fetch(response.request.url, handle_request)
     else:
         Processador.qt_bytes += salvar(self.nome, response.body)
         Processador.qt_arqs += 1
         print '\t\t\t%3d\t%s --> salvo' % (self.numero, self.nome)
         Processador.conj_baixar.discard(self.nome)
         if not Processador.conj_baixar:
             ioloop.IOLoop.instance().stop()
Пример #12
0
def processar(response, nome, numero):
    global qt_bytes, qt_arqs
    if response.error:
        print 'Erro: ', response.error
        print '\tTentando de novo...', response.request.url
        http_client.fetch(response.request.url, handle_request)
    else:
        qt_bytes += salvar(nome, response.body)
        qt_arqs += 1
        print '\t\t\t%3d\t%s --> salvo' % (numero, nome)
        conj_baixar.discard(nome)
        if not conj_baixar:
            ioloop.IOLoop.instance().stop()
Пример #13
0
def processar(response, nome, numero):
    global qt_bytes, qt_arqs
    if response.error:
        print 'Erro: ', response.error
        print '\tTentando de novo...', response.request.url
        http_client.fetch(response.request.url, faz_processar(nome, numero))
    else:
        qt_bytes += salvar(nome, response.body)
        qt_arqs += 1
        print '\t\t\t%3d\t%s --> salvo' % (numero, nome)
        conj_baixar.discard(nome)
        if not conj_baixar:
            ioloop.IOLoop.instance().stop()
Пример #14
0
def processar(response, nome, numero):
    global qt_bytes, qt_arqs
    if response.error:
        print "Erro: ", response.error
        print "\tTentando de novo...", response.request.url
        httpclient.AsyncHTTPClient().fetch(response.request.url, processar)
    else:
        qt_bytes += salvar(nome, response.body)
        qt_arqs += 1
        print "\t\t\t%3d\t%s --> salvo" % (numero, nome)
        conj_baixar.discard(nome)
        if not conj_baixar:
            ioloop.IOLoop.instance().stop()
Пример #15
0
def processar(response):
    global qt_bytes, qt_arqs
    nome = response.request.url[len(BASE_URL):]
    conj_baixar.discard(nome)
    if response.error:
        print('Erro ao baixar %s: %r' %
              (nome, response.error))
    else:
        qt_bytes += salvar(nome, response.body)
        qt_arqs += 1
        print '\t\t\t', nome, '--> salvo'
        if not conj_baixar:
            ioloop.IOLoop.instance().stop()
Пример #16
0
def processar(response):
    global qt_bytes, qt_arqs
    if response.error:
        print("Erro: ", response.error)
        print("\tTentando de novo...", response.request.url)
        http_client.fetch(response.request.url, faz_processar(nome, numero))
    else:
        nome = response.request.url.split("/")[-1]
        qt_bytes += salvar(nome, response.body)
        qt_arqs += 1
        print("\t\t\t%3d\t%s --> salvo" % (0, nome))
        conj_baixar.discard(nome)
        if not conj_baixar:
            ioloop.IOLoop.instance().stop()
Пример #17
0
def processar(response):
    global qt_bytes, qt_arqs
    nome = response.request.url[len(BASE_URL):]
    if response.error:
        print 'Erro: ', response.error
        print '\tTentando de novo...', response.request.url
        http_client.fetch(response.request.url, handle_request)
    else:
        qt_bytes += salvar(nome, response.body)
        qt_arqs += 1
        print '\t\t\t', nome, '--> salvo'
        conj_baixar.discard(nome)
        if not conj_baixar:
            ioloop.IOLoop.instance().stop()
Пример #18
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):
        nome = sigla + '-lgflag.gif'
        print '\t%3d\t%s' % (num, nome)
        url = BASE_URL+nome
        with contextlib.closing(urllib2.urlopen(url)) as img_orig:
            img = img_orig.read()
            qt_bytes += salvar(nome, img)
            qt_arqs += 1

    return qt_bytes, qt_arqs
Пример #19
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
Пример #20
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 contextlib.closing(urllib2.urlopen(url)) as img_orig:
            img = img_orig.read()
            qt_bytes += salvar(nome, img)
            qt_arqs += 1

    return qt_bytes, qt_arqs
Пример #21
0
def processar(cliente, nome, numero):
    global qt_bytes, qt_arqs
    conj_baixar.add(nome)
    url = BASE_URL + nome
    response = yield gen.Task(cliente.fetch, url)
    if response.error:
        print('Erro: ', response.error)
        raise SystemExit
        # XXX: como tratar erros neste caso?
        # http_client.fetch(response.request.url, XXX)
    else:
        qt_bytes += salvar(nome, response.body)
        qt_arqs += 1
        print('\t\t\t%3d\t%s --> salvo' % (numero, nome))
        conj_baixar.discard(nome)
        if not conj_baixar:
            ioloop.IOLoop.instance().stop()
Пример #22
0
def processar(cliente, nome, numero):
    global qt_bytes, qt_arqs
    conj_baixar.add(nome)
    url = BASE_URL + nome
    print ("\t\tbaixando %s" % nome)
    response = yield gen.Task(cliente.fetch, url)
    if response.error:
        print ("Erro ao baixar %s: %r" % (nome, response.error))
        # XXX: como tratar erros neste caso?
        # cliente.fetch(response.request.url, XXX)
    else:
        qt_bytes += salvar(nome, response.body)
        qt_arqs += 1
        print "\t\t\t%3d\t%s --> salvo" % (numero, nome)
        conj_baixar.discard(nome)
        if not conj_baixar:
            ioloop.IOLoop.instance().stop()
Пример #23
0
def processar(cliente, nome, numero):
    global qt_bytes, qt_arqs
    conj_baixar.add(nome)
    url = BASE_URL+nome
    response = yield gen.Task(cliente.fetch, url)
    if response.error:
        print('Erro: ', response.error)
        raise SystemExit
        # XXX: como tratar erros neste caso?
        # http_client.fetch(response.request.url, XXX)
    else:
        qt_bytes += salvar(nome, response.body)
        qt_arqs += 1
        print('\t\t\t%3d\t%s --> salvo' % (numero, nome))
        conj_baixar.discard(nome)
        if not conj_baixar:
            ioloop.IOLoop.instance().stop()