Пример #1
0
def run(verbose):
    preprocesados = preprocesar.get_top_htmls()
    pi = ParseaImagenes()

    for dir3, fname, _ in preprocesados:
        if verbose:
            print "Extrayendo imgs de %s/%s" % (dir3.encode("utf8"), fname.encode("utf8"))
        pi.parsea(dir3, fname)

    pi.dump()
    return pi.imgs_ok, pi.cant
Пример #2
0
def run(verbose):
    # tomar los preprocesador ordenados de más importante a menos
    preprocesados = preprocesar.get_top_htmls()

    # levantamos la relación artículos -> imágenes
    pag_imagenes = {}
    with codecs.open(config.LOG_IMAGPROC, "r", "utf-8") as fh:
        for linea in fh:
            partes = linea.strip().split(config.SEPARADOR_COLUMNAS)
            dir3 = partes[0]
            fname = partes[1]
            dskurls = partes[2:]
            pag_imagenes[dir3, fname] = dskurls

    # hacemos una lista de las páginas, anotando en que posición la
    # encontramos por primera vez, para luego ordenar por eso (de esta manera,
    # si una misma imagen está en un artículo importante y en otro que no, la
    # imagen va a quedar al 100%)
    imagenes = {}
    for posic_archivo, (dir3, fname, _) in enumerate(preprocesados):
        # sacamos qué imágenes le corresponde a este archivo
        dskurls = pag_imagenes[(dir3, fname)]

        # para cada imagen (si no estaba de antes), guardamos la posición
        # del archivo
        for url in dskurls:
            if url not in imagenes:
                imagenes[url] = posic_archivo

    total_imagenes = len(imagenes)
    imagenes = sorted(imagenes.items(), key=operator.itemgetter(1))

    # levantamos la lista de imágenes para a relacionarlas con la weburl
    dskweb = {}
    with codecs.open(config.LOG_IMAGENES, "r", "utf-8") as fh:
        for linea in fh:
            dsk, web = linea.strip().split(config.SEPARADOR_COLUMNAS)
            dskweb[dsk] = web

    escalador = Escalador(total_imagenes)
    log_reduccion = codecs.open(config.LOG_REDUCCION, "w", "utf8")
    for i, (dskurl, _) in enumerate(imagenes):
        escala = escalador(i)
        if escala == 0:
            # ya estamos, no más imágenes
            log_reduccion.close()
            return

        weburl = dskweb[dskurl]
        info = (str(int(escala)), dskurl, weburl)
        log_reduccion.write(config.SEPARADOR_COLUMNAS.join(info) + "\n")