Example #1
0
 def exp_pag_sencilla_sub(self, metadata, sub=None):
     if sub:
         self.driver = sub
     persona = Person()
     for dato in metadata['info']:
         result_data = self.explotar_tipo(metadata['info'][dato])
         persona.add_attribute(dato, result_data)
     persona.set_timestamp()
     if persona.name:
         return (persona.persona)
     else:
         return {}
Example #2
0
def exp_pag_sencilla(metadata, url):
    driver = dcrawl()
    driver.setup(url, 2)
    persona = Person()
    new_version = Pagina(url, metadata['entidad'])
    for dato in metadata['info']:
        result_data = driver.explotar_tipo(metadata['info'][dato])
        persona.add_attribute(dato, result_data)
    driver.close()
    persona.set_timestamp()
    if persona.name:
        new_version.agregar_persona(persona.persona)
    new_version.finalizar()
    return new_version
Example #3
0
    def BuscarRegistro(self, enlace, link_parse):
        persona = Person()
        new_version = Pagina(link_parse, self.metadata['entidad'])
        estudios = []
        experiencia = []
        try:
            self.driver.execute_script(enlace)
            persona.add_attribute(
                'nombre',
                self.driver.explotar_tipo(
                    "//span[@id='ctl00_MainContent_lblnombresapellidos'][text()]"
                ))
            persona.add_attribute(
                't_id',
                self.driver.explotar_tipo(
                    "//span[@id='ctl00_MainContent_lbltipoidentificacion'][text()]"
                ))
            persona.add_attribute(
                'n_id',
                self.driver.explotar_tipo(
                    "//span[@id='ctl00_MainContent_lblnumeroidentificacion'][text()]"
                ))
            persona.add_attribute(
                'f_pub',
                self.driver.explotar_tipo(
                    "//span[@id='ctl00_MainContent_lblfechapublicacion'][text()]"
                ))
            persona.add_attribute(
                'cargo_postulacion',
                self.driver.explotar_tipo(
                    "//span[@id='ctl00_MainContent_lblcargo'][text()]"))
            persona.add_attribute(
                'entidad',
                self.driver.explotar_tipo(
                    "//span[@id='ctl00_MainContent_lblentidad'][text()]"))
            persona.add_attribute(
                'sector',
                self.driver.explotar_tipo(
                    "//span[@id='ctl00_MainContent_lblsector'][text()]"))

            item_estudios = self.driver.getrows(
                "//tr[starts-with(@id,'ctl00_MainContent_gvwCont_DXDataRow')]")

            for estudio in item_estudios:
                det_estudio = {}
                tds = estudio.find_elements_by_xpath(
                    ".//td[@class='dxgv'][text()]")
                det_estudio['nivel'] = tds[0].text
                det_estudio['estado'] = tds[1].text
                det_estudio['titulo'] = tds[2].text
                det_estudio['inst'] = tds[3].text
                estudios.append(det_estudio)
            persona.add_attribute('estudios', estudios)

            item_experiencia = self.driver.getrows(
                "//tr[starts-with(@id,'ctl00_MainContent_gvwCont0_DXDataRow')]"
            )
            for regExperienciaL in item_experiencia:
                det_experiencia = {}
                tds = regExperienciaL.find_elements_by_xpath(
                    ".//td[@class='dxgv'][text()]")
                det_experiencia['entidad'] = tds[0].text
                det_experiencia['f_inicio'] = tds[1].text
                det_experiencia['f_fin'] = tds[2].text
                det_experiencia['cargo'] = tds[3].text
                experiencia.append(det_experiencia)
            persona.add_attribute('experiencia', experiencia)
            persona.set_timestamp()
            if persona.name:
                new_version.agregar_persona(persona.persona)
            new_version.finalizar()

            self.btnRegresar = self.driver.getelement(self.xpathRegresar)
            if self.btnRegresar:
                self.btnRegresar.click()
            self.reiniciarBusqueda()
        except Exception as e:
            pass
        return new_version
Example #4
0
    def extraer_hv(self, link):
        estudios = []
        experiencia = []
        persona = Person()
        self.driver.get(link)
        persona.add_name(
            self.driver.gettext(
                "//span[@class='nombre_funcionario']|//p[@class='nombre_funcionario']"
            ))
        persona.add_attribute(
            'cargo',
            self.driver.gettext(
                "//span[@class='cargo_funcionario']|//p[@class='cargo_funcionario']"
            ))
        persona.add_attribute(
            'institucion',
            self.driver.gettext(
                "//span[@class='institucion_funcionario']|//p[@class='institucion_funcionario']"
            ))
        persona.add_attribute(
            'email',
            self.driver.gettext(
                "//span[@class='texto_detalle_directorio'][1]|//p[@class='texto_detalle_directorio'][1]"
            ))
        persona.add_attribute(
            'telefono',
            self.driver.gettext(
                "//span[@class='texto_detalle_directorio'][2]|//p[@class='texto_detalle_directorio'][2]"
            ))
        persona.add_attribute(
            'l_nac',
            self.driver.gettext(
                ".//*[@class='zona_directorio_detail']/span[4][text()]"))

        try:
            item_estudios = self.driver.getrows(
                ".//*[@class='zona_directorio_detail']/ul/li[text()]")
            item_estudios = [(x.text).split('-') for x in item_estudios]

            for item in item_estudios:
                det_estudio = {}
                if len(item) == 3:
                    det_estudio['nivel'], det_estudio['titulo'], det_estudio[
                        'estado'] = item
                    det_estudio['nivel'] = to_unicode_or_bust(
                        det_estudio['nivel'])
                    det_estudio['titulo'] = to_unicode_or_bust(
                        det_estudio['titulo'])
                    det_estudio['estado'] = to_unicode_or_bust(
                        det_estudio['estado'])
                else:
                    det_estudio['nivel'] = item
                estudios.append(det_estudio)
            persona.add_attribute('estudios', estudios)
        except Exception as e:
            print "No tiene estudios registrados", e

        try:
            item_experiencias = self.driver.getrows(
                ".//div[@class='zona_directorio_detail']/table[@class='directorio_tabla']/tbody/tr[position() > 1]"
            )
            for exp in item_experiencias:
                det_experiencia = {}
                tds = [
                    x.text for x in (exp.find_elements_by_xpath(
                        ".//td[@class='directorio_td_data'][text()]"))
                ]
                det_experiencia['cargo'], det_experiencia[
                    'entidad'], det_experiencia['f_inicio'], det_experiencia[
                        'f_fin'] = tds
                det_experiencia['cargo'] = to_unicode_or_bust(
                    det_estudio['cargo'])
                det_experiencia['entidad'] = to_unicode_or_bust(
                    det_estudio['entidad'])
                det_experiencia['f_inicio'] = to_unicode_or_bust(
                    det_estudio['f_inicio'])
                det_experiencia['f_fin'] = to_unicode_or_bust(
                    det_estudio['f_fin'])
                experiencia.append(det_experiencia)
            persona.add_attribute('experiencia', experiencia)
        except Exception as e:
            print "No tiene experiencia laboral registrada", e

        self.driver.back()
        return persona