Exemplo n.º 1
0
    def leer(self):
        kiosco = Kiosco()

        print("leyendo noticias de '" + self.etiqueta + "'...")

        tag_regexp = re.compile(r'<[^>]+>')

        for tag, url_feed in self.feeds.items():

            i = 0

            feed = fp.parse(url_feed)
            entradas = feed.entries[0:5]

            print("     " + str(len(entradas)) + " noticias de '" + self.etiqueta + "/" + tag + "'...")
            for entrada in entradas:
                i += 1

                titulo = str(entrada.title)
                texto = str(bs(re.sub(tag_regexp,' ',entrada.summary), features="lxml").text)

                fecha = dateutil.parser.parse(entrada.published)
                # seccion = fecha.strftime('%H%M%S')
                seccion = 'alberto'
                url = str(entrada.link)

                # si ya se existe la noticia, no la descargo
                if kiosco.contar_noticias(diario=self.etiqueta, url=url):
                    print("     noticia " + str(i) + "/" + str(len(entradas)) +" ya parseada")
                    continue
                
                print("     parseando noticia " + str(i) + "/" + str(len(entradas)))
                self.noticias.append(Noticia(fecha=fecha, url=url, diario=self.etiqueta, seccion=seccion, titulo=titulo, texto=self.limpiar_texto(texto)))
Exemplo n.º 2
0
    def leer(self):
        kiosco = Kiosco()

        entradas = self.getTuplas()[0:70]

        print("leyendo " + str(len(entradas)) + " noticias de '" + self.etiqueta + "'...")

        i = 0
        for url, fecha, seccion in entradas:
            i += 1

            # if url in urls_existentes:
            if kiosco.contar_noticias(diario=self.etiqueta, url=url):
                print("noticia " + str(i) + "/" + str(len(entradas)) +" ya descargada")
                continue

            print("descargando noticia " + str(i) + "/" + str(len(entradas)))
            titulo, texto = self.parsearNoticia(url)

            if seccion == "futbol":
                seccion = "deportes"
            
            if seccion not in self.secciones:
                seccion = "varios"

            self.noticias.append(Noticia(fecha=fecha, url=url, diario=self.etiqueta, seccion=seccion, titulo=titulo, texto=self.limpiar_texto(texto)))
Exemplo n.º 3
0
    def leer(self):
        kiosco = Kiosco()

        entradas = self.entradas_feed()[0:40]

        print("leyendo " + str(len(entradas)) + " noticias de '" +
              self.etiqueta + "'...")

        i = 0
        for url, fecha in entradas:

            i += 1

            # if url in urls_existentes:
            if kiosco.contar_noticias(diario=self.etiqueta, url=url):
                print("noticia " + str(i) + "/" + str(len(entradas)) +
                      " ya descargada")
                continue

            print("descargando noticia " + str(i) + "/" + str(len(entradas)))
            seccion, titulo, texto = self.parsear_noticia(url=url)
            if texto == None:
                continue

            if seccion not in self.secciones:
                continue

            self.noticias.append(
                Noticia(fecha=fecha,
                        url=url,
                        diario=self.etiqueta,
                        seccion=seccion,
                        titulo=titulo,
                        texto=self.limpiar_texto(texto)))
Exemplo n.º 4
0
    def leer(self):
        kiosco = Kiosco()

        print("leyendo noticias de '" + self.etiqueta + "'...")

        for seccion, url_feed in self.feeds.items():

            i = 0

            entradas = self.entradas_feed(url_feed=url_feed)[0:5]

            print("     " + str(len(entradas)) + " noticias de '" +
                  self.etiqueta + "/" + seccion + "'...")
            for url, fecha, titulo in entradas:

                i += 1

                # if url in urls_existentes:
                if kiosco.contar_noticias(diario=self.etiqueta, url=url):
                    print("     noticia " + str(i) + "/" + str(len(entradas)) +
                          " ya descargada")
                    continue

                print("     descargando noticia " + str(i) + "/" +
                      str(len(entradas)))
                texto = self.parsear_noticia(url=url)
                if texto == None:
                    continue
                self.noticias.append(
                    Noticia(fecha=fecha,
                            url=url,
                            diario=self.etiqueta,
                            seccion=seccion,
                            titulo=titulo,
                            texto=texto))
Exemplo n.º 5
0
    def leer(self):
        kiosco = Kiosco()

        tag_regexp = re.compile(r'<[^>]+>')

        # recupero las urls del dia de hoy, con la diferencia horario del servidor.
        # si no hay de hoy, me trae de ayer.
        entradas = fp.parse(self.feed_noticias).entries[0:70]

        print("leyendo " + str(len(entradas)) + " noticias de '" +
              self.etiqueta + "'...")

        i = 0
        for entrada in entradas:
            i += 1

            url = str(entrada.link)

            seccion = ''
            try:
                seccion = str(url.split('/')[3])
            except:
                continue

            if seccion == "america":
                seccion = "internacional"

            if seccion == "teleshow":
                seccion = "espectaculos"

            if seccion == "deportes-2":
                seccion = "deportes"

            #if url in urls_existentes:
            if kiosco.contar_noticias(diario=self.etiqueta,
                                      secciones=seccion,
                                      url=url):
                print("noticia " + str(i) + "/" + str(len(entradas)) +
                      " ya descargada")
                continue

            print("parseando noticia " + str(i) + "/" + str(len(entradas)))
            titulo = str(entrada.title)
            texto = str(re.sub(tag_regexp, ' ', entrada.content[0].value))
            fecha = dateutil.parser.parse(
                entrada.published, ignoretz=True) - datetime.timedelta(hours=3)

            if seccion not in self.secciones:
                continue

            self.noticias.append(
                Noticia(fecha=fecha,
                        url=url,
                        diario=self.etiqueta,
                        seccion=seccion,
                        titulo=titulo,
                        texto=self.limpiar_texto(texto)))

        print(self.etiqueta + " leyo " + str(len(self.noticias)))
Exemplo n.º 6
0
    def test_contar_noticias(self):
        k = Kiosco()

        notis = k.noticias(diario='clarin')

        #fecha = datetime.datetime(year = 2020, month = 8, day = 25)
        fecha = {
            'desde': datetime.datetime(year=2020, month=8, day=22),
            'hasta': datetime.datetime(year=2020, month=8, day=24)
        }
        seccion = ['economia', 'internacional']
        conteo = k.contar_noticias(fecha=fecha,
                                   diario='test_todos',
                                   secciones=seccion)
        conteo
Exemplo n.º 7
0
    def leer_editoriales(self):
        kiosco = Kiosco()

        tag_regexp = re.compile(r'<[^>]+>')

        i = 0
        for pagina in range(1, 17):
            entradas = fp.parse(
                'https://ledoymipalabra.com/category/editoriales/feed?paged=' +
                str(pagina)).entries

            print("leyendo " + str(len(entradas)) +
                  " noticias de la pagina numero " + str(pagina) +
                  " de las editoriales de '" + self.etiqueta + "'...")

            for entrada in entradas:
                i += 1

                url = str(entrada.id)

                seccion = 'editorial'

                #if url in urls_existentes:
                if kiosco.contar_noticias(diario=self.etiqueta,
                                          secciones=seccion,
                                          url=url):
                    print("noticia " + str(i) + "/" + str(len(entradas)) +
                          " ya descargada")
                    continue

                print("parseando noticia " + str(i) + "/" + str(len(entradas)))
                titulo = str(entrada.title)
                texto = str(
                    re.sub(tag_regexp, ' ', str(entrada.content[0].value)))
                fecha = dateutil.parser.parse(
                    entrada.published,
                    ignoretz=True) - datetime.timedelta(hours=3)

                self.noticias.append(
                    Noticia(fecha=fecha,
                            url=url,
                            diario=self.etiqueta,
                            seccion=seccion,
                            titulo=titulo,
                            texto=self.limpiar_texto(texto)))

        print(self.etiqueta + " leyo " + str(len(self.noticias)))
Exemplo n.º 8
0
    def leer(self):
        kiosco = Kiosco()

        tag_regexp = re.compile(r'<[^>]+>')

        # recupero las urls del dia de hoy, con la diferencia horario del servidor.
        # si no hay de hoy, me trae de ayer.
        entradas = fp.parse(self.feed_noticias).entries[0:70]

        print("leyendo " + str(len(entradas)) + " noticias de '" +
              self.etiqueta + "'...")

        i = 0
        for entrada in entradas:
            i += 1

            url = str(entrada.id)

            seccion = 'todo'
            for tag in entrada.tags:
                if tag['term'] == 'Le doy Mi Palabra':
                    seccion = 'editorial'

            #if url in urls_existentes:
            if kiosco.contar_noticias(diario=self.etiqueta, url=url):
                print("noticia " + str(i) + "/" + str(len(entradas)) +
                      " ya descargada")
                continue

            print("parseando noticia " + str(i) + "/" + str(len(entradas)))
            titulo = str(entrada.title)
            texto = str(re.sub(tag_regexp, ' ', str(entrada.content[0].value)))
            fecha = dateutil.parser.parse(
                entrada.published, ignoretz=True) - datetime.timedelta(hours=3)

            self.noticias.append(
                Noticia(fecha=fecha,
                        url=url,
                        diario=self.etiqueta,
                        seccion=seccion,
                        titulo=titulo,
                        texto=self.limpiar_texto(texto)))

        print(self.etiqueta + " leyo " + str(len(self.noticias)))
Exemplo n.º 9
0
    def leer(self):
        kiosco = Kiosco()

        tag_regexp = re.compile(r'<[^>]+>')
        
        entradas = fp.parse(self.feed_noticias).entries[0:70]

        print("leyendo " + str(len(entradas)) + " noticias de '" + self.etiqueta + "'...")

        i = 0
        for entrada in entradas:
            i += 1

            url = str(entrada.link)
            
            seccion = str(url.split('/')[3])

            if seccion == "show":
                seccion = "espectaculos"

            if seccion not in self.secciones:
                continue

            # if url in urls_existentes:
            if kiosco.contar_noticias(diario=self.etiqueta, url=url):
                print("noticia " + str(i) + "/" + str(len(entradas)) +" ya descargada")
                continue

            print("parseando noticia " + str(i) + "/" + str(len(entradas)))
            titulo = str(entrada.title)
            texto = str(re.sub(tag_regexp,' ',entrada.content[0].value))
            fecha = dateutil.parser.parse(entrada.published, ignoretz=True)  - datetime.timedelta(hours=3)

            self.noticias.append(Noticia(fecha=fecha, url=url, diario=self.etiqueta, seccion=seccion, titulo=titulo, texto=self.limpiar_texto(texto)))

        print(self.etiqueta + " leyo " + str(len(self.noticias)))