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