def escribir_eid(self, cantidad_recuperados): iteraciones = cantidad_recuperados/100 for i in range(iteraciones): print i d = Descarga(self.consultas[0],(i*100)+1) xml = d.obtener_respuesta(d.peticion) print 'ya descargo' d.descargar_xml(xml,'xml'+str(i)) print 'ya escribio' self.escribir_resultado(d.obtener_respuesta(d.peticion), str(i+1))
def descargar_papers(self, query): d = Descarga(query) respuesta = d.obtener_respuesta(d.peticion) tree = ET.parse(respuesta) root = tree.getroot() for child in root: for doi in child.findall('{http://prismstandard.org/namespaces/basic/2.0/}doi'): print doi.text titulo = self.descargar_paper(doi.text) if titulo != None: self.titulos_descargas.append(titulo)
def obtener_eid(self, cantidad_recuperados, consulta): iteraciones = cantidad_recuperados/100 eids = [] for i in range(iteraciones): print i d = Descarga(consulta,(i*100)) ##xml = d.obtener_respuesta(d.peticion) print 'ya descargo' #d.descargar_xml(xml,'xml'+str(i)) print 'ya escribio' eids = eids + self.obtener_eid_100(d.obtener_respuesta(d.peticion)) ##eids = eids + self.obtener_eid_100(open('busqueda1.xml')) return eids
def descargar_paper(self, doi, user, proyecto): """" Descarga los archivos pdf desde scopus, a partir del 'doi', y devuelve el titulo y el eid del archivo descargado. Parametros doi : doi de un paper. user : Usuario de vigtech que hace la consuluta proyecto : proyecto de vigtech al que corresponde la consulta """" d = Descarga(doi) d.buscar_por_doi() titulo_eid =d.descargar(REPOSITORY_DIR+'%s.%s/'%(user,proyecto)) return titulo_eid
def descargar_papers(self, query, cantidad_recuperados, user, proyecto): iteraciones = cantidad_recuperados/100 for i in range(iteraciones): d = Descarga(query, i*100) xml = d.obtener_respuesta(d.peticion) d.descargar_xml(xml, REPOSITORY_DIR+'%s.%s/busqueda'%(user,proyecto)+str(i)) respuesta = d.obtener_respuesta(d.peticion) tree = ET.parse(respuesta) root = tree.getroot() for child in root: for doi in child.findall('{http://prismstandard.org/namespaces/basic/2.0/}doi'): print doi.text titulo_eid = self.descargar_paper(doi.text, user, proyecto) eid = titulo_eid[0] #print 'TIT', titulo titulo = titulo_eid[1] #print 'EIDx', eid if (titulo != ''): self.titulos_descargas.append(titulo) self.eids_descargas.append(eid) self.lista_docs.append(titulo + ".pdf")
def descargar_papers(self, query): d = Descarga(query) xml = d.obtener_respuesta(d.peticion) d.descargar_xml(xml, 'busqueda') respuesta = d.obtener_respuesta(d.peticion) tree = ET.parse(respuesta) root = tree.getroot() for child in root: for doi in child.findall( '{http://prismstandard.org/namespaces/basic/2.0/}doi'): print doi.text self.titulos_descargas.append(self.descargar_paper(doi.text))
def descargar_papers(self, query, cantidad_recuperados, user, proyecto): """" Consume el servicio de scopus a partir de la 'query' que se envia, y escribe el xml de respuesta en el directorio compuesto por 'user' y 'proyecto'. Ademas descarga los papers disponibles a partir de los doi que aparezcan en el xml previamente descargados. Por ultimo almacena en los atributos 'eids_descargas' y 'lista_docs' los archivos que fueron descargados. Parametros query : Consulta que se le hace a scopus (string) (ejemplo: Heart) cantidad_recuperados : Cantidad de papers que va a devolver scopus en el xml, solo una pequena porcion de estos seran desgargados. (integer) user : Usuario de vigtech que hace la consuluta (string) proyecto : proyecto de vigtech al que corresponde la consulta (string) """" #Cada xml solo arroja 100 papers, luego si se quieren mas papers hay que descargar varios xml iteraciones = cantidad_recuperados/100 for i in range(iteraciones): d = Descarga(query, i*100) xml = d.obtener_respuesta(d.peticion) d.descargar_xml(xml, REPOSITORY_DIR+'%s.%s/busqueda'%(user,proyecto)+str(i)) respuesta = d.obtener_respuesta(d.peticion) tree = ET.parse(respuesta) root = tree.getroot() for child in root: for doi in child.findall('{http://prismstandard.org/namespaces/basic/2.0/}doi'): print doi.text titulo_eid = self.descargar_paper(doi.text, user, proyecto) eid = titulo_eid[0] #print 'TIT', titulo titulo = titulo_eid[1] #print 'EIDx', eid if (titulo != ''): self.titulos_descargas.append(titulo) self.eids_descargas.append(eid) self.lista_docs.append(titulo + ".pdf")
import time, hashlib, json, random #@UnresolvedImport from ValidacionSeguridad import ValidacionSeguridad # @UnresolvedImport import Static.config_DB as dbConf # @UnresolvedImport from Static.UploadFiles import UploadFiles # @UnresolvedImport from descarga import Descarga # @UnresolvedImport from mail import correo # @UnresolvedImport from IPy import IP import socket import re import requests lc_cnctn = ConnectDB() Utils = Utils() validacionSeguridad = ValidacionSeguridad() descarga = Descarga() class ActualizarAcceso(Form): id_login_ge = StringField( labels.lbl_nmbr_usrs, [validators.DataRequired(message=errors.ERR_NO_SN_PRMTRS)]) login = StringField( labels.lbl_lgn, [validators.DataRequired(message=errors.ERR_NO_INGSA_USRO)]) nombre_usuario = StringField( labels.lbl_nmbr_usrs, [validators.DataRequired(message=errors.ERR_NO_INGSA_NMBRE_USRO)]) class AcInsertarAcceso(Form):
def imprimir_metadatos(self, query): d = Descarga(query) xml = d.obtener_respuesta(d.peticion) print self.obtener_metadatos(xml, '{http://purl.org/dc/elements/1.1/}title')
def descargar_paper(self, doi, user, proyecto): d = Descarga(doi) d.buscar_por_doi() titulo_eid =d.descargar(REPOSITORY_DIR+'%s.%s/'%(user,proyecto)) return titulo_eid
def escribir_resultados(self): for i, consulta in enumerate(self.consultas): d = Descarga(consulta) #print d.construir_peticion() self.escribir_resultado(d.obtener_respuesta(d.peticion), str(i+1))
def __init__(self): self.descarga = Descarga() self.jkanime = Jkanime() elecciones = {1: self.descarga, 2: self.descarga_masiva, 3: self.salir}
def descargar_paper(self, doi): d = Descarga(doi) d.buscar_por_doi() return d.descargar()
def escribir_resultados(self): for i, consulta in enumerate(self.consultas): d = Descarga(consulta) #print d.construir_peticion() self.escribir_resultado(d.obtener_respuesta(d.peticion), str(i + 1))
def imprimir_metadatos(self, query): d = Descarga(query) xml = d.obtener_respuesta(d.peticion) print self.obtener_metadatos( xml, '{http://purl.org/dc/elements/1.1/}title')