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
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))
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))
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)
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)
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)
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()
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()
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()
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()
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()
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()
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()
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()
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
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
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
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()
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()
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()