Beispiel #1
0
def obtener_ofertas():
    print "Obtener base de datos"
    ofertas_db = mongodb.get_db(database_ip, database_port, database_ofertas)
    requisitos_db = mongodb.get_db(database_ip, database_port,
                                   database_requisitos)
    imprescindible_elements = mongodb.get_element(requisitos_db,
                                                  {"nivReq": "imprescindible"})
    competencias_elements = mongodb.get_element(requisitos_db,
                                                {"nivReq": "competencias"})

    competencias = []
    for compet in competencias_elements:
        for values in compet['value']:
            competencias.append(values)

    imprescindible = []
    for impresc in imprescindible_elements:
        for values in impresc['value']:
            imprescindible.append(values)

    print "Obtener ofertas de Uvigo"
    ofertas_uvigo = scrapping_uvigo.get_uvigo(competencias, imprescindible)
    for oferta_uvigo in ofertas_uvigo:
        mongodb.add_update_element(ofertas_db, oferta_uvigo)

    print "Obtener ofertas de Infojobs"
    ofertas_infojobs = infojobs.get_infojobs(competencias, imprescindible)
    for each_oferta in ofertas_infojobs:
        mongodb.add_update_element(ofertas_db, each_oferta)

    return
Beispiel #2
0
def obtener_ofertas():
    print "Obtener base de datos"
    ofertas_db = mongodb.get_db(database_ip, database_port, database_ofertas)
    requisitos_db = mongodb.get_db(database_ip, database_port, database_requisitos)
    imprescindible_elements = mongodb.get_element(requisitos_db, {"nivReq": "imprescindible"})
    competencias_elements = mongodb.get_element(requisitos_db, {"nivReq": "competencias"})

    competencias = []
    for compet in competencias_elements:
        for values in compet['value']:
            competencias.append(values)

    imprescindible = []
    for impresc in imprescindible_elements:
        for values in impresc['value']:
            imprescindible.append(values)

    print "Obtener ofertas de Uvigo"
    ofertas_uvigo = scrapping_uvigo.get_uvigo(competencias, imprescindible)
    for oferta_uvigo in ofertas_uvigo:
        mongodb.add_update_element(ofertas_db, oferta_uvigo)

    print "Obtener ofertas de Infojobs"
    ofertas_infojobs = infojobs.get_infojobs(competencias, imprescindible)
    for each_oferta in ofertas_infojobs:
        mongodb.add_update_element(ofertas_db, each_oferta)

    return
Beispiel #3
0
def enriquecimiento():
    database_ip = "52.208.8.144"
    database_port = 8080
    print "Inicio enriquecimiento ofertas"
    colOfer = mongodb.get_db(database_ip, database_port, "ofertas")
    colTit = mongodb.get_db(database_ip, database_port, "titulos")
    # rellenar la experiencia de aquellas que no lo tengan
    # (no actualiza las que ya tienen un valor -> el objetivo es completar, no inventar)
    docs = colOfer.find({'experiencia_min': {'$type': 10}})

    cont = 0
    print("Inicio experiencia")
    for doc in docs:
        Gen.generarExperiencia(colOfer, doc)
        cont += 1
    print("Inicio relaciones")
    Emp.relacionadas(colOfer, colTit)
    return
Beispiel #4
0
 def validation(object):
     _id = object.get("_id", None)
     value = object.get(name, None)
     if value == None: return True
     db = mongodb.get_db()
     _collection = db[collection]
     item = _collection.find_one({name : value})
     if not item: return True
     if str(item["_id"]) == _id: return True
     raise exceptions.ValidationInternalError(name, "value is duplicate")
Beispiel #5
0
def buscar(email):
    db_user = mongodb.get_db(database_ip, database_port, database_usuarios)
    usuario_db = db_user.find_one({'email': email})
    if usuario_db is None:
        print "Usuario no encontrado"
        return
    ofertas = Relevancia.get_relevancia(usuario_db, Filtrar_ofertas.get_ofertas(usuario_db))

    ofertas = sorted(ofertas, key=operator.itemgetter("nota_user"), reverse=True)
    print "Estas son las ofertas que hemos seleccionado apra ti"
    print ""
    for offers in ofertas:
        print str(offers.get("nota_user"))+" - "+offers.get("url")
    print ""
    return
Beispiel #6
0
 def _increment(cls, name):
     _name = cls._name() + ":" + name
     db = mongodb.get_db()
     value = db.counters.find_and_modify(
         query = {
             "_id" : _name
         },
         update = {
             "$inc" : {
                 "seq" : 1
             }
         },
         upsert = True
     )
     value = value or db.counters.find_one({
         "_id" : _name
     })
     return value["seq"]
Beispiel #7
0
def get_linkedin_info():
    db_requisitos = mongodb.get_db(database_ip, database_port,
                                   database_requisitos)
    habilidadesDB, competenciasDB = __get_requisitos(db_requisitos)
    linkedin_conection, access_token = __conect_to_linkedin()
    print "Conectado al perfil de linkedin\n Obteniendo datos"
    nombre, apellidos = __get_nombre(linkedin_conection, access_token)
    ciudad = __get_localidad(linkedin_conection, access_token)
    habilidades_dict, competencias_dict, habilidadesDB, competenciasDB = __get_skills_linkedin(
        linkedin_conection, access_token, habilidadesDB, competenciasDB)
    empresas, habilidades_dict = __get_empresas(linkedin_conection,
                                                access_token, habilidades_dict,
                                                habilidadesDB)
    email = __get_email(linkedin_conection, access_token)
    idiomas = __get_idiomas(linkedin_conection, access_token)
    estudios_dict, nivel_titulacion = __get_estudios(linkedin_conection,
                                                     access_token)
    # creamos la entidad usuario
    print "Datos Obtenidos\nGuardando..."
    db_user = mongodb.get_db(database_ip, database_port, database_usuarios)

    desplazamiento = raw_input(
        "Cuanto estarias dispuesto a desplazarte(0(localidad)-3(pais)):")
    usuario_db = db_user.find_one({'email': email})
    usuario = None
    if usuario_db is not None:
        print "Usuario encontrado\nActualizando..."
        usuario = Users.Users(nombre, apellidos, email)
        usuario.id = usuario_db['_id']
        usuario.ciudad = usuario_db['ciudad']
        usuario.idiomas = usuario_db['idiomas']
        usuario.nivel_titulacion = usuario_db['nivel_titulacion']
        usuario.competencias = usuario_db['competencias']
        usuario.habilidades = usuario_db['habilidades']
        usuario.estudios = usuario_db['estudios']
        usuario.empresas = usuario_db['empresas']
    else:
        usuario = Users.Users(nombre, apellidos, email)

    usuario.ciudad = ciudad
    usuario.email = email
    usuario.idiomas = idiomas
    usuario.desplazamiento = int(desplazamiento)
    usuario.nivel_titulacion = nivel_titulacion
    if usuario.competencias is None:
        usuario.competencias = competencias_dict
    else:
        usuario.competencias.update(competencias_dict)
    if usuario.habilidades is None:
        usuario.habilidades = habilidades_dict
    else:
        usuario.habilidades.update(habilidades_dict)
    if usuario.estudios is None:
        usuario.estudios = estudios_dict
    else:
        for estudio in estudios_dict:
            if estudio not in usuario.estudios:
                usuario.estudios.append(estudio)
    if usuario.empresas is None:
        usuario.empresas = empresas
    else:
        for empresa in empresas:
            if empresa not in usuario.empresas:
                usuario.empresas.append(empresa)
    mongodb.add_update_element(db_user, usuario.toDBCollection())
    print "Usuario Guardado: " + nombre + " " + apellidos
    return
Beispiel #8
0
def __main():
    __actualizar_localizacion(
        mongodb.get_db(__database_ip, __database_port, __database_ofertas))
    # actualizar_localizacion(mongodb.get_db(database_ip, database_port, database_usuarios))
    return
Beispiel #9
0
def actualizar_localizacion_usuarios():
    print "Actualizando localizaciones"
    __actualizar_localizacion(
        mongodb.get_db(__database_ip, __database_port, __database_usuarios))
    print "Localizaciones actualizadas"
    return
Beispiel #10
0
import mongodb

db = mongodb.get_db()

def find():
    table = db.boys
    return table.find()
Beispiel #11
0
def get_linkedin_info():
    db_requisitos = mongodb.get_db(database_ip, database_port, database_requisitos)
    habilidadesDB, competenciasDB = __get_requisitos(db_requisitos)
    linkedin_conection, access_token = __conect_to_linkedin()
    print "Conectado al perfil de linkedin\n Obteniendo datos"
    nombre, apellidos = __get_nombre(linkedin_conection, access_token)
    ciudad = __get_localidad(linkedin_conection, access_token)
    habilidades_dict, competencias_dict, habilidadesDB, competenciasDB = __get_skills_linkedin(linkedin_conection,
                                                                                               access_token,
                                                                                               habilidadesDB,
                                                                                               competenciasDB)
    empresas, habilidades_dict = __get_empresas(linkedin_conection, access_token, habilidades_dict, habilidadesDB)
    email = __get_email(linkedin_conection, access_token)
    idiomas = __get_idiomas(linkedin_conection, access_token)
    estudios_dict, nivel_titulacion = __get_estudios(linkedin_conection, access_token)
    # creamos la entidad usuario
    print "Datos Obtenidos\nGuardando..."
    db_user = mongodb.get_db(database_ip, database_port, database_usuarios)

    desplazamiento = raw_input("Cuanto estarias dispuesto a desplazarte(0(localidad)-3(pais)):")
    usuario_db = db_user.find_one({'email': email})
    usuario = None
    if usuario_db is not None:
        print "Usuario encontrado\nActualizando..."
        usuario = Users.Users(nombre, apellidos, email)
        usuario.id = usuario_db['_id']
        usuario.ciudad = usuario_db['ciudad']
        usuario.idiomas = usuario_db['idiomas']
        usuario.nivel_titulacion = usuario_db['nivel_titulacion']
        usuario.competencias = usuario_db['competencias']
        usuario.habilidades = usuario_db['habilidades']
        usuario.estudios = usuario_db['estudios']
        usuario.empresas = usuario_db['empresas']
    else:
        usuario = Users.Users(nombre, apellidos, email)

    usuario.ciudad = ciudad
    usuario.email = email
    usuario.idiomas = idiomas
    usuario.desplazamiento = int(desplazamiento)
    usuario.nivel_titulacion = nivel_titulacion
    if usuario.competencias is None:
        usuario.competencias = competencias_dict
    else:
        usuario.competencias.update(competencias_dict)
    if usuario.habilidades is None:
        usuario.habilidades = habilidades_dict
    else:
        usuario.habilidades.update(habilidades_dict)
    if usuario.estudios is None:
        usuario.estudios = estudios_dict
    else:
        for estudio in estudios_dict:
            if estudio not in usuario.estudios:
                usuario.estudios.append(estudio)
    if usuario.empresas is None:
        usuario.empresas = empresas
    else:
        for empresa in empresas:
            if empresa not in usuario.empresas:
                usuario.empresas.append(empresa)
    mongodb.add_update_element(db_user, usuario.toDBCollection())
    print "Usuario Guardado: " + nombre + " " + apellidos
    return
Beispiel #12
0
# coding: UTF-8

from lxml import etree
import mongodb

# no se añaden los datasets al git dado que cada uno de ellos tenía un peso de unos 100MB, resultando una carga excesiva
# no obstante, se corresponden a las primeras 375000 empresas listadas en Sabi bajo 'Todas las empresas'
cont = 0
col = mongodb.get_db("52.208.8.144", 8080, "ranking")
docs = []
print("parseando archivo1")
tree1 = etree.parse('Sabi_Export_1.xml')
root1 = tree1.getroot()
print("codigo listo")
for record in root1:
    for item in record:
        if item.get("field") == "NAME":
            docs.append({'_id':cont, 'Nombre': item.text})
            cont += 1
for i in range(0, len(docs)/1000):
    j = i*1000
    docs2 = docs[j:j+1000]
    col.insert(docs2)

docs = []
print("parseando archivo2")
tree2 = etree.parse('Sabi_Export_2.xml')
root2 = tree2.getroot()
print("codigo listo")
for record in root2:
    for item in record:
Beispiel #13
0
import scrapping_uvigo
import infojobs
import mongodb

print "Prueba.py\n"

print "Obtener base de datos"
ofertas_db = mongodb.get_db()

print "\nObtener ofertas de Uvigo"
ofertas_uvigo = scrapping_uvigo.get_uvigo()
for oferta_uvigo in ofertas_uvigo:
    mongodb.add_update_oferta(ofertas_db, oferta_uvigo)
    print oferta_uvigo

print "\nObtener ofertas de Infojobs"
ofertas_infojobs = infojobs.get_infojobs()
for each_oferta in ofertas_infojobs:
    mongodb.add_update_oferta(ofertas_db, each_oferta)
    print each_oferta
Beispiel #14
0
 def _collection(cls):
     name = cls._name()
     db = mongodb.get_db()
     collection = db[name]
     return collection