def extrairCitadosTextoBestExtract(link,f): listaFamosos = model.buscarListaFamoso() noticiaDB = model.buscarNoticia(link) if noticiaDB != False and listaFamosos != False: f.writelines(str(noticiaDB[1]) + "\n") noticia = {'id': noticiaDB[0], 'titulo': noticiaDB[1], 'subtitulo': noticiaDB[2], 'link': noticiaDB[3], 'tipo': noticiaDB[4], 'texto': noticiaDB[5]} print(str(noticia['titulo'])) famosos = [] for j in listaFamosos: famosos.append(j[1]) textoTotal = noticia['titulo'] + " " + noticia['subtitulo'] + " " + noticia['texto'] result = process.extractBests(textoTotal, famosos,None,None,57,limit=10000) for r in result: f.writelines(str(r[0])+","+str(round(r[1],1))+"\n") return result
def extrairCitadosTexto(): listaFamosos = model.buscarListaFamoso() listaNoticias = model.buscarListaNoticias() f = open("arquivoTeste.txt", "w") f2 = open("arquivoTeste2.txt", "w") if listaNoticias != False and listaFamosos != False: for i in listaNoticias[:50]: f.writelines(str(i[1]) + "\n") noticia = {'id': i[0], 'titulo': i[1], 'subtitulo': i[2], 'link': i[3], 'tipo': i[4], 'texto': i[5]} print(str(noticia['titulo'])) bestExtract = extrairCitadosTextoBestExtract(noticia['link'],f2) for j in bestExtract: famoso = {'nome': j[0]} ratioTotal = 0 mediaRatio = 0 nomeCompleto = famoso['nome'] todosNomes = famoso['nome'].split(" ") textoTotal = noticia['titulo'] + " " + noticia['subtitulo'] + " " + noticia['texto'] ratioTotal += fuzz.token_set_ratio(nomeCompleto, textoTotal) if len(todosNomes) > 1: for nome in todosNomes: ratioTotal += fuzz.token_set_ratio(nome, textoTotal) if len(todosNomes) == 1: mediaRatio = ratioTotal elif len(todosNomes) > 1: mediaRatio = ratioTotal / (len(todosNomes) + 1) '''print(str(nomeCompleto) + "," + str(mediaRatio))''' if mediaRatio > 20: f.writelines(str(nomeCompleto) + "," + str(round(mediaRatio,1))+"\n") if mediaRatio > 85: '''model.relacionarFamosoNoticia(famoso['nome'], noticia['id'])''' '''print(" - " + str(nomeCompleto))''' f.close() f2.close()
crawlerListaFamosos() tentarNovamente = False except Exception as e: print(str(e)) print("Esperando 5 segundos.....") time.sleep(5) qtd += 1 if qtd > 5: tentarNovamente = False ''' print("*****************************************************") print("*****************************************************") print("***********INICIO FAMOSO RELACIONADO*****************") print("*****************************************************") print("*****************************************************") tentarNovamente = True posicaoFamoso = qtdTentativas = 1830 listafamosos = model.buscarListaFamoso() while posicaoFamoso <= (len(listafamosos) - 1): print("Famoso: " + str(posicaoFamoso + 1) + "/" + str(len(listafamosos))) if crawlerFamosoRelacionados(listafamosos[posicaoFamoso]) == True: posicaoFamoso += 1 else: print("Esperando 5 segundos.....") time.sleep(5) qtdTentativas += 1 if qtdTentativas > 5: posicaoFamoso += 1
__author__ = 'Gabriel' import threading import time import queue import noticias import model from fuzzywuzzy import fuzz from fuzzywuzzy import process exitFlag = False listaFamosos = [] for j in model.buscarListaFamoso(): listaFamosos.append(j[1]) class myThread (threading.Thread): def __init__(self, threadID, name, queue): threading.Thread.__init__(self) self.threadID = threadID self.name = name self.queue = queue def run(self): print("Iniciando " + str(self.name)) extrairCitadosTexto(self.name, self.queue, listaFamosos) print("Finalizando " + str(self.name)) def extrairCitadosTexto(threadName, queue, listaFamosos): queueLock.acquire() while not workQueue.empty(): n = queue.get()