diff --git a/homework/hw1/241878_hw1_2025_1/241878_hw1_2025_1.ipynb b/homework/hw1/241878_hw1_2025_1/241878_hw1_2025_1.ipynb deleted file mode 100644 index 6cbc02de8..000000000 --- a/homework/hw1/241878_hw1_2025_1/241878_hw1_2025_1.ipynb +++ /dev/null @@ -1,588 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": null, - "id": "5aa9f8ee", - "metadata": {}, - "outputs": [], - "source": [ - "# Pasos para crear y activar un entorno en Conda desde la terminal de VS Code \n", - "# 1. Crear un nuevo environment con Python 3.11 \n", - "# conda create -n tarea python=3.11 -y \n", - "# 2. Activar el environment \n", - "# conda activate tarea \n", - "# 3. Navegar a la carpeta del proyecto \n", - "# cd documents/github/data-science-python/000246672_hw1_2025_1 \n", - "# 4. Instalar las dependencias necesarias \n", - "# pip install -r requirements.txt " - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "id": "460d29a9", - "metadata": {}, - "outputs": [], - "source": [ - "from selenium import webdriver\n", - "import re\n", - "import time \n", - "from selenium.webdriver.common.by import By" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "id": "9f7eb9ed", - "metadata": {}, - "outputs": [], - "source": [ - "# Set up Selenium\n", - "driver = webdriver.Chrome()\n", - "driver.maximize_window()\n", - "driver.maximize_window()\n", - "\n", - "# Navigate to the Bumeran website\n", - "url = \"https://www.bumeran.com.pe/empleos.html\"\n", - "driver.get(url)" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "id": "72a7debe", - "metadata": {}, - "outputs": [], - "source": [ - "from selenium import webdriver\n", - "from selenium.webdriver.chrome.service import Service\n", - "from webdriver_manager.chrome import ChromeDriverManager\n", - "from selenium import webdriver\n", - "from selenium.webdriver.chrome.service import Service\n", - "from selenium.webdriver.common.by import By\n", - "from selenium.webdriver.support.ui import WebDriverWait\n", - "from selenium.webdriver.support import expected_conditions as EC\n", - "from webdriver_manager.chrome import ChromeDriverManager" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "id": "073528de", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "https://www.bumeran.com.pe/empleos/analista-programador-de-tecnologias-de-la-informacion-instituto-quimioterapico-s.a.-iqfarma-1116740821.html\n", - "https://www.bumeran.com.pe/empleos/frontend-developer-react-maseka-consulting-s.a.c.-1116739942.html\n", - "https://www.bumeran.com.pe/empleos/analista-programador-power-builder-junior-1116745817.html\n", - "https://www.bumeran.com.pe/empleos/desarrollador-front-ios-summit-s.a.c-1116742593.html\n", - "https://www.bumeran.com.pe/empleos/analista-programador-de-sistemas-hibrido-tecsup-1116737470.html\n", - "https://www.bumeran.com.pe/empleos/desarrollador-en-automatizacion-industrias-san-miguel-1116668376.html\n", - "https://www.bumeran.com.pe/empleos/programador-web-front-end-camara-de-comercio-exterior-s.a.c.-1116748969.html\n", - "https://www.bumeran.com.pe/empleos/desarrollador-full-stack-java-angular.js-senior-indra-peru-1116748914.html\n", - "https://www.bumeran.com.pe/empleos/desarrollador-backend-aws-entelgy-1116748440.html\n", - "https://www.bumeran.com.pe/empleos/desarrollador-mobile-software-enterprise-services-s.a.c.-1116748226.html\n", - "https://www.bumeran.com.pe/empleos/analista-programador-universidad-de-san-martin-de-porres-1116747719.html\n", - "https://www.bumeran.com.pe/empleos/junior-fullstack-developer-westpoint-software-solutions-1116746906.html\n", - "https://www.bumeran.com.pe/empleos/consultor-sap-siglo-bpo-1116255122.html\n", - "https://www.bumeran.com.pe/empleos/desarrollador-devops-csti-corp-1116746770.html\n", - "https://www.bumeran.com.pe/empleos/desarrollador-fullstack-semi-csti-corp-1116746707.html\n", - "https://www.bumeran.com.pe/empleos/desarrollador-fullstack-semi-csti-corp-1116746681.html\n", - "https://www.bumeran.com.pe/empleos/analista-programador-java-canvia-1116746667.html\n", - "https://www.bumeran.com.pe/empleos/desarrollador-fullstack-.net-angular-proyecto-temporal-tivit-peru-1116745883.html\n", - "https://www.bumeran.com.pe/empleos/programador-rpa-1116745783.html\n", - "https://www.bumeran.com.pe/empleos/fullstack-senior-metrica-andina-1116745064.html\n" - ] - } - ], - "source": [ - "from selenium import webdriver\n", - "from selenium.webdriver.common.by import By\n", - "from selenium.webdriver.common.action_chains import ActionChains\n", - "from selenium.webdriver.common.keys import Keys\n", - "from bs4 import BeautifulSoup\n", - "import time\n", - "\n", - "\n", - "# Configurar el navegador (usar Chrome en este caso)\n", - "driver = webdriver.Chrome()\n", - "\n", - "# Ir a la página web donde están los botones\n", - "driver.get(url) # Reemplaza con la URL real\n", - "\n", - "# Esperar a que la página cargue completamente\n", - "time.sleep(3) \n", - "\n", - "# Aplicar los filtros (según tu código)\n", - "def click_button(text):\n", - " try:\n", - " button = driver.find_element(By.XPATH, f\"//button[contains(text(), '{text}')]\")\n", - " button.click()\n", - " time.sleep(2)\n", - " except Exception as e:\n", - " print(f\"No se encontró el botón: {text} - {e}\")\n", - "\n", - "click_button(\"Fecha de publicación\")\n", - "click_button(\"Menor a 15 días\")\n", - "click_button(\"Área\")\n", - "click_button(\"Tecnología, Sistemas y Telecomunicaciones\")\n", - "click_button(\"Subárea\")\n", - "click_button(\"Programación\")\n", - "click_button(\"Departamento\")\n", - "click_button(\"Lima\")\n", - "click_button(\"Carga horaria\")\n", - "click_button(\"Full-time\")\n", - "\n", - "# Obtener el HTML de la página\n", - "html = driver.page_source\n", - "soup = BeautifulSoup(html, \"html.parser\")\n", - "\n", - "# Extraer todos los links dentro de con href\n", - "links = []\n", - "for a_tag in soup.find_all(\"a\", href=True):\n", - " link = a_tag[\"href\"]\n", - " # Filtrar solo los enlaces que contienen ofertas de empleo\n", - " if \"/empleos/\" in link:\n", - " links.append(\"https://www.bumeran.com.pe\" + link) # Agregar el dominio\n", - "\n", - "# Cerrar el WebDriver\n", - "driver.quit()\n", - "\n", - "# Imprimir los enlaces extraídos\n", - "for link in links:\n", - " print(link)" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "id": "a4e6363a", - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "C:\\Users\\usuario\\AppData\\Local\\Temp\\ipykernel_7476\\2502763111.py:7: DeprecationWarning: \n", - "Pyarrow will become a required dependency of pandas in the next major release of pandas (pandas 3.0),\n", - "(to allow more performant data types, such as the Arrow string type, and better interoperability with other libraries)\n", - "but was not found to be installed on your system.\n", - "If this would cause problems for you,\n", - "please provide us feedback at https://github.com/pandas-dev/pandas/issues/54466\n", - " \n", - " import pandas as pd\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Datos extraídos de: https://www.bumeran.com.pe/empleos/analista-programador-de-tecnologias-de-la-informacion-instituto-quimioterapico-s.a.-iqfarma-1116740821.html\n", - "Datos extraídos de: https://www.bumeran.com.pe/empleos/frontend-developer-react-maseka-consulting-s.a.c.-1116739942.html\n", - "Datos extraídos de: https://www.bumeran.com.pe/empleos/analista-programador-power-builder-junior-1116745817.html\n", - "Datos extraídos de: https://www.bumeran.com.pe/empleos/desarrollador-front-ios-summit-s.a.c-1116742593.html\n", - "Datos extraídos de: https://www.bumeran.com.pe/empleos/analista-programador-de-sistemas-hibrido-tecsup-1116737470.html\n", - "Datos extraídos de: https://www.bumeran.com.pe/empleos/desarrollador-en-automatizacion-industrias-san-miguel-1116668376.html\n", - "Datos extraídos de: https://www.bumeran.com.pe/empleos/programador-web-front-end-camara-de-comercio-exterior-s.a.c.-1116748969.html\n", - "Datos extraídos de: https://www.bumeran.com.pe/empleos/desarrollador-full-stack-java-angular.js-senior-indra-peru-1116748914.html\n", - "Datos extraídos de: https://www.bumeran.com.pe/empleos/desarrollador-backend-aws-entelgy-1116748440.html\n", - "Datos extraídos de: https://www.bumeran.com.pe/empleos/desarrollador-mobile-software-enterprise-services-s.a.c.-1116748226.html\n", - "Datos extraídos de: https://www.bumeran.com.pe/empleos/analista-programador-universidad-de-san-martin-de-porres-1116747719.html\n", - "Datos extraídos de: https://www.bumeran.com.pe/empleos/junior-fullstack-developer-westpoint-software-solutions-1116746906.html\n", - "Datos extraídos de: https://www.bumeran.com.pe/empleos/consultor-sap-siglo-bpo-1116255122.html\n", - "Datos extraídos de: https://www.bumeran.com.pe/empleos/desarrollador-devops-csti-corp-1116746770.html\n", - "Datos extraídos de: https://www.bumeran.com.pe/empleos/desarrollador-fullstack-semi-csti-corp-1116746707.html\n", - "Datos extraídos de: https://www.bumeran.com.pe/empleos/desarrollador-fullstack-semi-csti-corp-1116746681.html\n", - "Datos extraídos de: https://www.bumeran.com.pe/empleos/analista-programador-java-canvia-1116746667.html\n", - "Datos extraídos de: https://www.bumeran.com.pe/empleos/desarrollador-fullstack-.net-angular-proyecto-temporal-tivit-peru-1116745883.html\n", - "Datos extraídos de: https://www.bumeran.com.pe/empleos/programador-rpa-1116745783.html\n", - "Datos extraídos de: https://www.bumeran.com.pe/empleos/fullstack-senior-metrica-andina-1116745064.html\n", - "Todos los datos han sido guardados en ofertas_trabajo.xlsx\n" - ] - } - ], - "source": [ - "from selenium import webdriver\n", - "from selenium.webdriver.chrome.service import Service\n", - "from selenium.webdriver.common.by import By\n", - "from selenium.webdriver.support.ui import WebDriverWait\n", - "from selenium.webdriver.support import expected_conditions as EC\n", - "from webdriver_manager.chrome import ChromeDriverManager\n", - "import pandas as pd\n", - "import time\n", - "\n", - "# Configurar Selenium\n", - "driver = webdriver.Chrome()\n", - "driver.maximize_window()\n", - "\n", - "# Lista de URLs de ofertas de trabajo\n", - "urls = links # Asegúrate de definir 'links' antes de usarlo\n", - "\n", - "# Función para extraer el distrito correctamente\n", - "def get_distrito(driver):\n", - " xpaths = [\n", - " \"/html/body/div[1]/div/div[2]/div[2]/div/div[2]/div[1]/div[2]/div[1]/div[1]/div[2]/div/div/div[1]/div[2]/div/div/li/a/h2\",\n", - " \"/html/body/div[1]/div/div[2]/div[2]/div/div[2]/div[1]/div[2]/div[1]/div[1]/div[2]/div/div[1]/div[1]/div[2]/div/div/li/a/h2\",\n", - " ]\n", - " for xpath in xpaths:\n", - " try:\n", - " distrito_texto = WebDriverWait(driver, 5).until(\n", - " EC.presence_of_element_located((By.XPATH, xpath))\n", - " ).text\n", - "\n", - " # Limpiar el texto para eliminar \"Actualizado hace X horas\" y \"Nuevo\"\n", - " distrito_limpio = distrito_texto.split(\",\")[0].strip()\n", - " return distrito_limpio\n", - " except:\n", - " continue\n", - " return \"Distrito no encontrado\"\n", - "\n", - "# Función para extraer el modo de trabajo\n", - "def get_modo_trabajo(driver):\n", - " xpaths = [\n", - " \"/html/body/div[1]/div/div[2]/div[2]/div/div[2]/div[1]/div[2]/div[1]/div[1]/div[2]/div/div[1]/div[4]/div/ul/div[1]/li[1]/a/p\",\n", - " \"/html/body/div[1]/div/div[2]/div[2]/div/div[2]/div[1]/div[2]/div[1]/div[1]/div[2]/div/div/div[4]/div/ul/div[1]/li[1]/a/p\",\n", - " \"/html/body/div[1]/div/div[2]/div[2]/div/div[2]/div[1]/div[2]/div[1]/div[1]/div[2]/div/div/div[5]/div/ul/div[1]/li[1]/a/p\",\n", - " \"/html/body/div[1]/div/div[2]/div[2]/div/div[2]/div[1]/div[2]/div[1]/div[1]/div[2]/div/div[1]/div[5]/div/ul/div[1]/li[1]/a/p\",\n", - " ]\n", - " for xpath in xpaths:\n", - " try:\n", - " modo = WebDriverWait(driver, 5).until(\n", - " EC.presence_of_element_located((By.XPATH, xpath))\n", - " ).text\n", - " return modo\n", - " except:\n", - " continue\n", - " return \"Modo de trabajo no encontrado\"\n", - "\n", - "# Lista para almacenar datos\n", - "job_data = []\n", - "\n", - "for url in urls:\n", - " try:\n", - " driver.get(url)\n", - " time.sleep(3) # Esperar que la página cargue completamente\n", - "\n", - " # Extraer título del trabajo\n", - " job_title = WebDriverWait(driver, 10).until(\n", - " EC.presence_of_element_located((By.TAG_NAME, \"h1\"))\n", - " ).text\n", - "\n", - " # Extraer descripción hasta \"Beneficios\"\n", - " description_element = driver.find_element(By.XPATH, \"//*[@id='ficha-detalle']\")\n", - " full_description = description_element.text.split(\"\\n\")\n", - "\n", - " # Filtrar hasta \"Beneficios\" (si existe)\n", - " description_text = []\n", - " for line in full_description:\n", - " if \"Beneficios\" in line:\n", - " break\n", - " description_text.append(line)\n", - "\n", - " description = \"\\n\".join(description_text)\n", - "\n", - " # Extraer distrito y modalidad de trabajo con las funciones optimizadas\n", - " district = get_distrito(driver)\n", - " work_mode = get_modo_trabajo(driver)\n", - "\n", - " # Guardar en la lista\n", - " job_data.append([job_title, description, district, work_mode])\n", - "\n", - " print(f\"Datos extraídos de: {url}\")\n", - "\n", - " except Exception as e:\n", - " print(f\"Error en {url}: {e}\")\n", - "\n", - "# Cerrar el navegador\n", - "driver.quit()\n", - "\n", - "# Crear un DataFrame y exportar a Excel\n", - "df_jobs = pd.DataFrame(job_data, columns=[\"Job Title\", \"Description\", \"District\", \"Work Mode\"])\n", - "df_jobs.to_excel(\"ofertas_trabajo.xlsx\", index=False, engine=\"openpyxl\")\n", - "\n", - "print(\"Todos los datos han sido guardados en ofertas_trabajo.xlsx\")\n" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "id": "ce77b193", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Job TitleDescriptionDistrictWork Mode
0Analista Programador de Tecnologías de la info...Publicado hace 7 días\\nEl Agustino, Lima, Peru...El AgustinoPresencial
1Frontend Developer ReactMúltiples vacantes\\nActualizado ayer\\nPueblo L...Pueblo LibreHíbrido
2Analista Programador Power Builder JuniorMúltiples vacantes\\nActualizado ayer\\nLima, Li...LimaRemoto
3DESARROLLADOR FRONT IOSMúltiples vacantes\\nActualizado ayer\\nComas, L...ComasHíbrido
4Analista Programador de Sistemas - HíbridoActualizado ayer\\nSanta Anita, Lima, Peru\\nDes...Santa AnitaHíbrido
5Desarrollador en AutomatizaciónPublicado hace 14 días\\nSantiago de Surco, Lim...Santiago de SurcoPresencial
6Programador Web Front-EndPostulación rápida\\nPublicado ayer\\nSan Isidro...San IsidroPresencial
7Desarrollador Full Stack Java / Angular.JS SeniorPublicado ayer\\nSan Isidro, Lima, Peru\\nDescri...San IsidroRemoto
8Desarrollador Backend AWSMúltiples vacantes\\nPublicado ayer\\nLima, Lima...LimaHíbrido
9Desarrollador MobileMúltiples vacantes\\nPublicado ayer\\nCercado De...Cercado De LimaHíbrido
10Analista programadorPostulación rápida\\nPublicado ayer\\nJesús Marí...Jesús MaríaPresencial
11Junior Fullstack developerPostulación rápida\\nMúltiples vacantes\\nPublic...LimaRemoto
12Consultor SAPPublicado hace 3 días\\nSan Isidro, Lima, Peru\\...San IsidroRemoto
13Desarrollador DevOpsActualizado ayer\\nLima, Lima, Peru\\nDescripció...LimaHíbrido
14Desarrollador FullStack - SemiActualizado ayer\\nLima, Lima, Peru\\nDescripció...LimaHíbrido
15Desarrollador FullStack - SemiActualizado ayer\\nLima, Lima, Peru\\nDescripció...LimaHíbrido
16Analista programador JavaMúltiples vacantes\\nActualizado ayer\\nLima, Li...LimaHíbrido
17Desarrollador Fullstack (.NET/Angular) - Proye...Actualizado ayer\\nLima, Lima, Peru\\nDescripció...LimaRemoto
18PROGRAMADOR RPAMúltiples vacantes\\nPublicado hace 4 días\\nLim...LimaHíbrido
19FullStack SeniorActualizado ayer\\nMiraflores, Lima, Peru\\nDesc...MirafloresHíbrido
\n", - "
" - ], - "text/plain": [ - " Job Title \\\n", - "0 Analista Programador de Tecnologías de la info... \n", - "1 Frontend Developer React \n", - "2 Analista Programador Power Builder Junior \n", - "3 DESARROLLADOR FRONT IOS \n", - "4 Analista Programador de Sistemas - Híbrido \n", - "5 Desarrollador en Automatización \n", - "6 Programador Web Front-End \n", - "7 Desarrollador Full Stack Java / Angular.JS Senior \n", - "8 Desarrollador Backend AWS \n", - "9 Desarrollador Mobile \n", - "10 Analista programador \n", - "11 Junior Fullstack developer \n", - "12 Consultor SAP \n", - "13 Desarrollador DevOps \n", - "14 Desarrollador FullStack - Semi \n", - "15 Desarrollador FullStack - Semi \n", - "16 Analista programador Java \n", - "17 Desarrollador Fullstack (.NET/Angular) - Proye... \n", - "18 PROGRAMADOR RPA \n", - "19 FullStack Senior \n", - "\n", - " Description District \\\n", - "0 Publicado hace 7 días\\nEl Agustino, Lima, Peru... El Agustino \n", - "1 Múltiples vacantes\\nActualizado ayer\\nPueblo L... Pueblo Libre \n", - "2 Múltiples vacantes\\nActualizado ayer\\nLima, Li... Lima \n", - "3 Múltiples vacantes\\nActualizado ayer\\nComas, L... Comas \n", - "4 Actualizado ayer\\nSanta Anita, Lima, Peru\\nDes... Santa Anita \n", - "5 Publicado hace 14 días\\nSantiago de Surco, Lim... Santiago de Surco \n", - "6 Postulación rápida\\nPublicado ayer\\nSan Isidro... San Isidro \n", - "7 Publicado ayer\\nSan Isidro, Lima, Peru\\nDescri... San Isidro \n", - "8 Múltiples vacantes\\nPublicado ayer\\nLima, Lima... Lima \n", - "9 Múltiples vacantes\\nPublicado ayer\\nCercado De... Cercado De Lima \n", - "10 Postulación rápida\\nPublicado ayer\\nJesús Marí... Jesús María \n", - "11 Postulación rápida\\nMúltiples vacantes\\nPublic... Lima \n", - "12 Publicado hace 3 días\\nSan Isidro, Lima, Peru\\... San Isidro \n", - "13 Actualizado ayer\\nLima, Lima, Peru\\nDescripció... Lima \n", - "14 Actualizado ayer\\nLima, Lima, Peru\\nDescripció... Lima \n", - "15 Actualizado ayer\\nLima, Lima, Peru\\nDescripció... Lima \n", - "16 Múltiples vacantes\\nActualizado ayer\\nLima, Li... Lima \n", - "17 Actualizado ayer\\nLima, Lima, Peru\\nDescripció... Lima \n", - "18 Múltiples vacantes\\nPublicado hace 4 días\\nLim... Lima \n", - "19 Actualizado ayer\\nMiraflores, Lima, Peru\\nDesc... Miraflores \n", - "\n", - " Work Mode \n", - "0 Presencial \n", - "1 Híbrido \n", - "2 Remoto \n", - "3 Híbrido \n", - "4 Híbrido \n", - "5 Presencial \n", - "6 Presencial \n", - "7 Remoto \n", - "8 Híbrido \n", - "9 Híbrido \n", - "10 Presencial \n", - "11 Remoto \n", - "12 Remoto \n", - "13 Híbrido \n", - "14 Híbrido \n", - "15 Híbrido \n", - "16 Híbrido \n", - "17 Remoto \n", - "18 Híbrido \n", - "19 Híbrido " - ] - }, - "execution_count": 7, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "dataframe1 = pd.DataFrame(job_data, columns=[\"Job Title\", \"Description\", \"District\", \"Work Mode\"])\n", - "dataframe1" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "web-scraping-env", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.10.16" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/homework/hw1/241878_hw1_2025_1/ofertas_trabajo.xlsx b/homework/hw1/241878_hw1_2025_1/ofertas_trabajo.xlsx deleted file mode 100644 index 86a15dc90..000000000 Binary files a/homework/hw1/241878_hw1_2025_1/ofertas_trabajo.xlsx and /dev/null differ diff --git a/homework/hw1/259359_hw1_2025_1/.ipynb_checkpoints/Tarea 1-checkpoint.ipynb b/homework/hw1/259359_hw1_2025_1/.ipynb_checkpoints/Tarea 1-checkpoint.ipynb new file mode 100644 index 000000000..66d0c9bbc --- /dev/null +++ b/homework/hw1/259359_hw1_2025_1/.ipynb_checkpoints/Tarea 1-checkpoint.ipynb @@ -0,0 +1,280 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "id": "5ef22780-d8af-4dac-9fc2-7014ae48ea64", + "metadata": {}, + "outputs": [], + "source": [ + "#Para crear el enviroment ----------------------------\n", + "#--------------Creamos el enviroment\n", + "# conda create -n Tarea1 python=3.11\n", + "#-------------Lo activamos\n", + "# conda activate Tarea1 \n", + "#------------Vamos a la ruta del txt\n", + "# cd Documents/GitHub/Data-Science-Python/homework/hw1/259359_hw1_2025_1\n", + "#------------Instalamos\n", + "# pip install -r requirements.txt " + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "fbf681bd-2fb1-42f1-baeb-91c5821757bc", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Collecting webdriver-manager\n", + " Downloading webdriver_manager-4.0.2-py2.py3-none-any.whl.metadata (12 kB)\n", + "Requirement already satisfied: requests in c:\\users\\fabrizio\\anaconda3\\envs\\tarea1\\lib\\site-packages (from webdriver-manager) (2.32.3)\n", + "Collecting python-dotenv (from webdriver-manager)\n", + " Downloading python_dotenv-1.1.0-py3-none-any.whl.metadata (24 kB)\n", + "Requirement already satisfied: packaging in c:\\users\\fabrizio\\anaconda3\\envs\\tarea1\\lib\\site-packages (from webdriver-manager) (24.2)\n", + "Requirement already satisfied: charset-normalizer<4,>=2 in c:\\users\\fabrizio\\anaconda3\\envs\\tarea1\\lib\\site-packages (from requests->webdriver-manager) (3.4.1)\n", + "Requirement already satisfied: idna<4,>=2.5 in c:\\users\\fabrizio\\anaconda3\\envs\\tarea1\\lib\\site-packages (from requests->webdriver-manager) (3.10)\n", + "Requirement already satisfied: urllib3<3,>=1.21.1 in c:\\users\\fabrizio\\anaconda3\\envs\\tarea1\\lib\\site-packages (from requests->webdriver-manager) (2.3.0)\n", + "Requirement already satisfied: certifi>=2017.4.17 in c:\\users\\fabrizio\\anaconda3\\envs\\tarea1\\lib\\site-packages (from requests->webdriver-manager) (2025.1.31)\n", + "Downloading webdriver_manager-4.0.2-py2.py3-none-any.whl (27 kB)\n", + "Downloading python_dotenv-1.1.0-py3-none-any.whl (20 kB)\n", + "Installing collected packages: python-dotenv, webdriver-manager\n", + "Successfully installed python-dotenv-1.1.0 webdriver-manager-4.0.2\n" + ] + } + ], + "source": [ + "!pip install webdriver-manager #instalo el driver" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "f11af34a-9478-4b18-8913-4bde935da04f", + "metadata": {}, + "outputs": [], + "source": [ + "#importo las librerías que se instalaron arriba\n", + "from selenium import webdriver\n", + "from selenium.webdriver.chrome.service import Service\n", + "from webdriver_manager.chrome import ChromeDriverManager\n", + "from selenium.webdriver.common.by import By\n", + "from selenium.webdriver.support.ui import WebDriverWait\n", + "from selenium.webdriver.support import expected_conditions as EC\n", + "import time\n", + "import re\n", + "import pandas as pd" + ] + }, + { + "cell_type": "code", + "execution_count": 53, + "id": "b76f4fb9-d540-416c-9e67-d3447e871032", + "metadata": {}, + "outputs": [], + "source": [ + "##ejecuto el driver y abro la pagina de bumeran\n", + "driver = webdriver.Chrome()\n", + "url = \"https://www.bumeran.com.pe/empleos.html\"\n", + "driver.get(url)\n", + "driver.maximize_window()\n", + "time.sleep(5) #esperamos a que se abra la pestaña\n", + "driver.execute_script(\"document.body.style.zoom='100%'\") #ampliamos la ventana" + ] + }, + { + "cell_type": "markdown", + "id": "9e5051a4-ed60-489b-867d-adb48384d820", + "metadata": {}, + "source": [ + "----------FILTROS------------------------" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b911f333-cdc5-43a8-a31f-6c84a942538d", + "metadata": {}, + "outputs": [], + "source": [ + "# Abriendo el filtro de fecha de publicación y seleccionando los últimos 15 días\n", + "driver.find_element(By.NAME, 'icon-light-calendar').click()\n", + "time.sleep(3)\n", + "\n", + "fecha_15_dias = driver.find_element(By.XPATH, \"//button[contains(text(), 'Menor a 15 días')]\")\n", + "fecha_15_dias.click()\n", + "time.sleep(3)\n", + "\n", + "# Entrando al menú de áreas laborales y eligiendo \"Tecnología, Sistemas y Telecomunicaciones\"\n", + "driver.find_element(By.NAME, 'icon-light-cube').click()\n", + "time.sleep(3)\n", + "\n", + "area_tecnologia = driver.find_element(By.XPATH, \"//button[contains(text(), 'Tecnología, Sistemas y Telecomunicaciones')]\")\n", + "area_tecnologia.click()\n", + "time.sleep(3)\n", + "\n", + "# Accediendo al menú de subáreas y seleccionando \"Programación\"\n", + "driver.find_element(By.NAME, 'icon-light-layers').click()\n", + "time.sleep(3)\n", + "\n", + "subarea_programacion = driver.find_element(By.XPATH, \"//button[contains(text(), 'Programación')]\")\n", + "subarea_programacion.click()\n", + "time.sleep(7)\n", + "\n", + "# Configurando el filtro de ubicación en \"Lima\"\n", + "driver.find_element(By.XPATH, \"//button//i[@name='icon-light-location-pin']/..\").click()\n", + "time.sleep(9)\n", + "\n", + "lima = driver.find_element(By.XPATH, \"//button[contains(text(), 'Lima')]\")\n", + "lima.click()\n", + "time.sleep(10)\n", + "\n", + "# Ajustando la preferencia de jornada laboral a \"Full-time\"\n", + "driver.find_element(By.NAME, 'icon-light-bookmark').click()\n", + "time.sleep(10)\n", + "\n", + "full_time = driver.find_element(By.XPATH, \"//button[contains(text(), 'Full-time')]\")\n", + "full_time.click()\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e02a58e5-efb8-41f1-bac2-5abeb10f1614", + "metadata": {}, + "outputs": [], + "source": [ + "# Esperar a que los botones con enlaces de empleo carguen en la página\n", + "WebDriverWait(driver, 8).until(EC.presence_of_all_elements_located((By.CLASS_NAME, \"sc-zDqdV\")))\n", + "# Buscar todos los botones que contienen los enlaces de las ofertas\n", + "botones_enlaces = driver.find_elements(By.CLASS_NAME, \"sc-zDqdV\")\n", + "# Extraer los enlaces de cada botón y guardarlos en una lista\n", + "enlaces_empleos = [boton.get_attribute(\"href\") for boton in botones_enlaces]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e2bf51cf-c22d-4384-b085-7da2eecf4a68", + "metadata": {}, + "outputs": [], + "source": [ + "enlaces_empleos # comprobamos" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b49ad877-824e-49af-950f-36a0aab6ee07", + "metadata": {}, + "outputs": [], + "source": [ + "#✅ Stage 2: Scrape Job Details\n", + "# Iniciamos el navegador y lo maximizamos\n", + "driver = webdriver.Chrome()\n", + "driver.maximize_window()\n", + "\n", + "# Lista para almacenar la información\n", + "datos_empleos = []\n", + "\n", + "# Función para obtener el distrito\n", + "def obtener_distrito(driver):\n", + " xpaths_distrito = [\n", + " \"//div[contains(@class, 'ubicacion')]//h2\",\n", + " \"//li[contains(@class, 'ubicacion')]//a\"\n", + " ]\n", + " for xpath in xpaths_distrito:\n", + " elementos = driver.find_elements(By.XPATH, xpath)\n", + " if elementos:\n", + " return elementos[0].text.split(\",\")[0].strip() # Extraemos solo el distrito\n", + " return \"Distrito no encontrado\"\n", + "\n", + "# Función para obtener la modalidad de trabajo\n", + "def obtener_modalidad(driver):\n", + " xpaths_modalidad = [\n", + " \"//ul[contains(@class, 'modalidad')]//li/a\",\n", + " \"//div[contains(@class, 'detalles')]//ul/li\"\n", + " ]\n", + " for xpath in xpaths_modalidad:\n", + " elementos = driver.find_elements(By.XPATH, xpath)\n", + " if elementos:\n", + " return elementos[0].text.strip()\n", + " return \"No especificado\"\n", + "\n", + "# Función para obtener la descripción del empleo\n", + "def obtener_descripcion(driver):\n", + " try:\n", + " descripcion_completa = driver.find_element(By.ID, \"ficha-detalle\").text\n", + " descripcion, _, _ = descripcion_completa.partition(\"Beneficios\") # Toma solo lo anterior a \"Beneficios\"\n", + " return descripcion.strip()\n", + " except:\n", + " return \"Descripción no disponible\"\n", + "\n", + "# Recorremos los enlaces y extraemos la información\n", + "for enlace in lista_enlaces:\n", + " try:\n", + " driver.get(enlace)\n", + "\n", + " # Extraer título\n", + " titulo = WebDriverWait(driver, 8).until(\n", + " EC.presence_of_element_located((By.TAG_NAME, 'h1'))\n", + " ).text\n", + "\n", + " # Extraer información usando funciones\n", + " distrito = obtener_distrito(driver)\n", + " modalidad = obtener_modalidad(driver)\n", + " descripcion = obtener_descripcion(driver)\n", + "\n", + " # Guardamos los datos\n", + " datos_empleos.append([titulo, descripcion, distrito, modalidad, enlace])\n", + "\n", + " print(f\"Datos obtenidos de: {enlace}\")\n", + "\n", + " except Exception as e:\n", + " print(f\"Error al procesar {enlace}: {e}\")\n", + "\n", + "# Cerrar navegador\n", + "driver.quit()\n", + "\n", + "# Guardar en un archivo Excel\n", + "df = pd.DataFrame(datos_empleos, columns=[\"Título\", \"Descripción\", \"Distrito\", \"Modalidad\", \"Enlace\"])\n", + "df.to_csv(\"Trabajos_Bumeran.csv\", index=False, encoding=\"utf-8\", sep=\"|\")\n", + "\n", + "print(\"Extracción completada. Datos guardados en 'Trabajos_Bumeran.xlsx'.\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4b5c1235-1191-4c1b-b035-a5cfbfb5cd5c", + "metadata": {}, + "outputs": [], + "source": [ + "#Gracias :)))))" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python [conda env:Tarea1]", + "language": "python", + "name": "conda-env-Tarea1-py" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.11" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/homework/hw1/259359_hw1_2025_1/Tarea 1.ipynb b/homework/hw1/259359_hw1_2025_1/Tarea 1.ipynb new file mode 100644 index 000000000..3811d7133 --- /dev/null +++ b/homework/hw1/259359_hw1_2025_1/Tarea 1.ipynb @@ -0,0 +1,338 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 60, + "id": "5ef22780-d8af-4dac-9fc2-7014ae48ea64", + "metadata": {}, + "outputs": [], + "source": [ + "#Para crear el enviroment ----------------------------\n", + "#--------------Creamos el enviroment\n", + "# conda create -n Tarea1 python=3.11\n", + "#-------------Lo activamos\n", + "# conda activate Tarea1 \n", + "#------------Vamos a la ruta del txt\n", + "# cd Documents/GitHub/Data-Science-Python/homework/hw1/259359_hw1_2025_1\n", + "#------------Instalamos\n", + "# pip install -r requirements.txt " + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "fbf681bd-2fb1-42f1-baeb-91c5821757bc", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Collecting webdriver-manager\n", + " Downloading webdriver_manager-4.0.2-py2.py3-none-any.whl.metadata (12 kB)\n", + "Requirement already satisfied: requests in c:\\users\\fabrizio\\anaconda3\\envs\\tarea1\\lib\\site-packages (from webdriver-manager) (2.32.3)\n", + "Collecting python-dotenv (from webdriver-manager)\n", + " Downloading python_dotenv-1.1.0-py3-none-any.whl.metadata (24 kB)\n", + "Requirement already satisfied: packaging in c:\\users\\fabrizio\\anaconda3\\envs\\tarea1\\lib\\site-packages (from webdriver-manager) (24.2)\n", + "Requirement already satisfied: charset-normalizer<4,>=2 in c:\\users\\fabrizio\\anaconda3\\envs\\tarea1\\lib\\site-packages (from requests->webdriver-manager) (3.4.1)\n", + "Requirement already satisfied: idna<4,>=2.5 in c:\\users\\fabrizio\\anaconda3\\envs\\tarea1\\lib\\site-packages (from requests->webdriver-manager) (3.10)\n", + "Requirement already satisfied: urllib3<3,>=1.21.1 in c:\\users\\fabrizio\\anaconda3\\envs\\tarea1\\lib\\site-packages (from requests->webdriver-manager) (2.3.0)\n", + "Requirement already satisfied: certifi>=2017.4.17 in c:\\users\\fabrizio\\anaconda3\\envs\\tarea1\\lib\\site-packages (from requests->webdriver-manager) (2025.1.31)\n", + "Downloading webdriver_manager-4.0.2-py2.py3-none-any.whl (27 kB)\n", + "Downloading python_dotenv-1.1.0-py3-none-any.whl (20 kB)\n", + "Installing collected packages: python-dotenv, webdriver-manager\n", + "Successfully installed python-dotenv-1.1.0 webdriver-manager-4.0.2\n" + ] + } + ], + "source": [ + "!pip install webdriver-manager #instalo el driver" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "f11af34a-9478-4b18-8913-4bde935da04f", + "metadata": {}, + "outputs": [], + "source": [ + "#importo las librerías que se instalaron arriba\n", + "from selenium import webdriver\n", + "from selenium.webdriver.chrome.service import Service\n", + "from webdriver_manager.chrome import ChromeDriverManager\n", + "from selenium.webdriver.common.by import By\n", + "from selenium.webdriver.support.ui import WebDriverWait\n", + "from selenium.webdriver.support import expected_conditions as EC\n", + "import time\n", + "import re\n", + "import pandas as pd" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "b76f4fb9-d540-416c-9e67-d3447e871032", + "metadata": {}, + "outputs": [], + "source": [ + "##ejecuto el driver y abro la pagina de bumeran\n", + "driver = webdriver.Chrome()\n", + "url = \"https://www.bumeran.com.pe/empleos.html\"\n", + "driver.get(url)\n", + "driver.maximize_window()\n", + "time.sleep(5) #esperamos a que se abra la pestaña\n", + "driver.execute_script(\"document.body.style.zoom='100%'\") #ampliamos la ventana" + ] + }, + { + "cell_type": "markdown", + "id": "9e5051a4-ed60-489b-867d-adb48384d820", + "metadata": {}, + "source": [ + "----------FILTROS------------------------" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "b911f333-cdc5-43a8-a31f-6c84a942538d", + "metadata": {}, + "outputs": [], + "source": [ + "# Abriendo el filtro de fecha de publicación y seleccionando los últimos 15 días\n", + "driver.find_element(By.NAME, 'icon-light-calendar').click()\n", + "time.sleep(3)\n", + "\n", + "fecha_15_dias = driver.find_element(By.XPATH, \"//button[contains(text(), 'Menor a 15 días')]\")\n", + "fecha_15_dias.click()\n", + "time.sleep(3)\n", + "\n", + "# Entrando al menú de áreas laborales y eligiendo \"Tecnología, Sistemas y Telecomunicaciones\"\n", + "driver.find_element(By.NAME, 'icon-light-cube').click()\n", + "time.sleep(3)\n", + "\n", + "area_tecnologia = driver.find_element(By.XPATH, \"//button[contains(text(), 'Tecnología, Sistemas y Telecomunicaciones')]\")\n", + "area_tecnologia.click()\n", + "time.sleep(3)\n", + "\n", + "# Accediendo al menú de subáreas y seleccionando \"Programación\"\n", + "driver.find_element(By.NAME, 'icon-light-layers').click()\n", + "time.sleep(3)\n", + "\n", + "subarea_programacion = driver.find_element(By.XPATH, \"//button[contains(text(), 'Programación')]\")\n", + "subarea_programacion.click()\n", + "time.sleep(7)\n", + "\n", + "# Configurando el filtro de ubicación en \"Lima\"\n", + "driver.find_element(By.XPATH, \"//button//i[@name='icon-light-location-pin']/..\").click()\n", + "time.sleep(9)\n", + "\n", + "lima = driver.find_element(By.XPATH, \"//button[contains(text(), 'Lima')]\")\n", + "lima.click()\n", + "time.sleep(10)\n", + "\n", + "# Ajustando la preferencia de jornada laboral a \"Full-time\"\n", + "driver.find_element(By.NAME, 'icon-light-bookmark').click()\n", + "time.sleep(10)\n", + "\n", + "full_time = driver.find_element(By.XPATH, \"//button[contains(text(), 'Full-time')]\")\n", + "full_time.click()\n" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "e02a58e5-efb8-41f1-bac2-5abeb10f1614", + "metadata": {}, + "outputs": [], + "source": [ + "# Esperar a que los botones con enlaces de empleo carguen en la página\n", + "WebDriverWait(driver, 8).until(EC.presence_of_all_elements_located((By.CLASS_NAME, \"sc-zDqdV\")))\n", + "# Buscar todos los botones que contienen los enlaces de las ofertas\n", + "botones_enlaces = driver.find_elements(By.CLASS_NAME, \"sc-zDqdV\")\n", + "# Extraer los enlaces de cada botón y guardarlos en una lista\n", + "enlaces_empleos = [boton.get_attribute(\"href\") for boton in botones_enlaces]" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "e2bf51cf-c22d-4384-b085-7da2eecf4a68", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "['https://www.bumeran.com.pe/empleos/desarrollador-senior-java-ntt-data-1116752169.html',\n", + " 'https://www.bumeran.com.pe/empleos/software-architect-talent-house-peru-s.a.c.-1116750633.html',\n", + " 'https://www.bumeran.com.pe/empleos/analista-programador-power-builder-junior-1116745817.html',\n", + " 'https://www.bumeran.com.pe/empleos/desarrollador-front-ios-summit-s.a.c-1116742593.html',\n", + " 'https://www.bumeran.com.pe/empleos/analista-programador-de-tecnologias-de-la-informacion-instituto-quimioterapico-s.a.-iqfarma-1116740821.html',\n", + " 'https://www.bumeran.com.pe/empleos/frontend-developer-react-maseka-consulting-s.a.c.-1116739942.html',\n", + " 'https://www.bumeran.com.pe/empleos/analista-programador-de-sistemas-hibrido-tecsup-1116737470.html',\n", + " 'https://www.bumeran.com.pe/empleos/data-scientist-associate-%7C-desarrollo-de-modelos-riesgos-bbva-1116752543.html',\n", + " 'https://www.bumeran.com.pe/empleos/frontend-developer-react-manpowergroup-peru-1116752520.html',\n", + " 'https://www.bumeran.com.pe/empleos/backend-developer-nodejs-manpowergroup-peru-1116752515.html',\n", + " 'https://www.bumeran.com.pe/empleos/analista-programador-de-sistemas-tecsur.s.a-1116752494.html',\n", + " 'https://www.bumeran.com.pe/empleos/jefe-de-sistemas-ti-experis-peru-1116752439.html',\n", + " 'https://www.bumeran.com.pe/empleos/programador-frontend-junior-presencial-manpowergroup-peru-1116752262.html',\n", + " 'https://www.bumeran.com.pe/empleos/analista-programador-indra-peru-1116752132.html',\n", + " 'https://www.bumeran.com.pe/empleos/fullstack-developer-por-proyecto-protiviti-peru-1116752046.html',\n", + " 'https://www.bumeran.com.pe/empleos/desarrollador-java-oracle-weblogic-indra-peru-1116751791.html',\n", + " 'https://www.bumeran.com.pe/empleos/analista-programador-en-odoo-python-ibr-peru-s.a.-1116751782.html',\n", + " 'https://www.bumeran.com.pe/empleos/analista-programador-nodejs-web-html-grupo-tawa-1116751516.html',\n", + " 'https://www.bumeran.com.pe/empleos/desarrollador-en-innovacion-y-automatizacion-csti-corp-1116751489.html',\n", + " 'https://www.bumeran.com.pe/empleos/desarrollador-devops-hibrido-csti-corp-1116751467.html']" + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "enlaces_empleos # comprobamos" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "id": "b49ad877-824e-49af-950f-36a0aab6ee07", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Datos obtenidos de: https://www.bumeran.com.pe/empleos/desarrollador-senior-java-ntt-data-1116752169.html\n", + "Datos obtenidos de: https://www.bumeran.com.pe/empleos/software-architect-talent-house-peru-s.a.c.-1116750633.html\n", + "Datos obtenidos de: https://www.bumeran.com.pe/empleos/analista-programador-power-builder-junior-1116745817.html\n", + "Datos obtenidos de: https://www.bumeran.com.pe/empleos/desarrollador-front-ios-summit-s.a.c-1116742593.html\n", + "Datos obtenidos de: https://www.bumeran.com.pe/empleos/analista-programador-de-tecnologias-de-la-informacion-instituto-quimioterapico-s.a.-iqfarma-1116740821.html\n", + "Datos obtenidos de: https://www.bumeran.com.pe/empleos/frontend-developer-react-maseka-consulting-s.a.c.-1116739942.html\n", + "Datos obtenidos de: https://www.bumeran.com.pe/empleos/analista-programador-de-sistemas-hibrido-tecsup-1116737470.html\n", + "Datos obtenidos de: https://www.bumeran.com.pe/empleos/data-scientist-associate-%7C-desarrollo-de-modelos-riesgos-bbva-1116752543.html\n", + "Datos obtenidos de: https://www.bumeran.com.pe/empleos/frontend-developer-react-manpowergroup-peru-1116752520.html\n", + "Datos obtenidos de: https://www.bumeran.com.pe/empleos/backend-developer-nodejs-manpowergroup-peru-1116752515.html\n", + "Datos obtenidos de: https://www.bumeran.com.pe/empleos/analista-programador-de-sistemas-tecsur.s.a-1116752494.html\n", + "Datos obtenidos de: https://www.bumeran.com.pe/empleos/jefe-de-sistemas-ti-experis-peru-1116752439.html\n", + "Datos obtenidos de: https://www.bumeran.com.pe/empleos/programador-frontend-junior-presencial-manpowergroup-peru-1116752262.html\n", + "Datos obtenidos de: https://www.bumeran.com.pe/empleos/analista-programador-indra-peru-1116752132.html\n", + "Datos obtenidos de: https://www.bumeran.com.pe/empleos/fullstack-developer-por-proyecto-protiviti-peru-1116752046.html\n", + "Datos obtenidos de: https://www.bumeran.com.pe/empleos/desarrollador-java-oracle-weblogic-indra-peru-1116751791.html\n", + "Datos obtenidos de: https://www.bumeran.com.pe/empleos/analista-programador-en-odoo-python-ibr-peru-s.a.-1116751782.html\n", + "Datos obtenidos de: https://www.bumeran.com.pe/empleos/analista-programador-nodejs-web-html-grupo-tawa-1116751516.html\n", + "Datos obtenidos de: https://www.bumeran.com.pe/empleos/desarrollador-en-innovacion-y-automatizacion-csti-corp-1116751489.html\n", + "Datos obtenidos de: https://www.bumeran.com.pe/empleos/desarrollador-devops-hibrido-csti-corp-1116751467.html\n", + "Extracción completada. Datos guardados en 'Trabajos_Bumeran.xlsx'.\n" + ] + } + ], + "source": [ + "#✅ Stage 2: Scrape Job Details\n", + "# Iniciamos el navegador y lo maximizamos\n", + "driver = webdriver.Chrome()\n", + "driver.maximize_window()\n", + "\n", + "# Lista para almacenar la información\n", + "datos_empleos = []\n", + "\n", + "# Función para obtener el distrito\n", + "def obtener_distrito(driver):\n", + " xpaths_distrito = [\n", + " \"//div[contains(@class, 'ubicacion')]//h2\",\n", + " \"//li[contains(@class, 'ubicacion')]//a\"\n", + " ]\n", + " for xpath in xpaths_distrito:\n", + " elementos = driver.find_elements(By.XPATH, xpath)\n", + " if elementos:\n", + " return elementos[0].text.split(\",\")[0].strip() # Extraemos solo el distrito\n", + " return \"Distrito no encontrado\"\n", + "\n", + "# Función para obtener la modalidad de trabajo\n", + "def obtener_modalidad(driver):\n", + " xpaths_modalidad = [\n", + " \"//ul[contains(@class, 'modalidad')]//li/a\",\n", + " \"//div[contains(@class, 'detalles')]//ul/li\"\n", + " ]\n", + " for xpath in xpaths_modalidad:\n", + " elementos = driver.find_elements(By.XPATH, xpath)\n", + " if elementos:\n", + " return elementos[0].text.strip()\n", + " return \"No especificado\"\n", + "\n", + "# Función para obtener la descripción del empleo\n", + "def obtener_descripcion(driver):\n", + " try:\n", + " descripcion_completa = driver.find_element(By.ID, \"ficha-detalle\").text\n", + " descripcion, _, _ = descripcion_completa.partition(\"Beneficios\") # Toma solo lo anterior a \"Beneficios\"\n", + " return descripcion.strip()\n", + " except:\n", + " return \"Descripción no disponible\"\n", + "\n", + "# Recorremos los enlaces y extraemos la información\n", + "for enlace in enlaces_empleos:\n", + " try:\n", + " driver.get(enlace)\n", + "\n", + " # Extraer título\n", + " titulo = WebDriverWait(driver, 8).until(\n", + " EC.presence_of_element_located((By.TAG_NAME, 'h1'))\n", + " ).text\n", + "\n", + " # Extraer información usando funciones\n", + " distrito = obtener_distrito(driver)\n", + " modalidad = obtener_modalidad(driver)\n", + " descripcion = obtener_descripcion(driver)\n", + "\n", + " # Guardamos los datos\n", + " datos_empleos.append([titulo, descripcion, distrito, modalidad, enlace])\n", + "\n", + " print(f\"Datos obtenidos de: {enlace}\")\n", + "\n", + " except Exception as e:\n", + " print(f\"Error al procesar {enlace}: {e}\")\n", + "\n", + "# Cerrar navegador\n", + "driver.quit()\n", + "\n", + "# Guardar en un archivo Excel\n", + "df = pd.DataFrame(datos_empleos, columns=[\"Título\", \"Descripción\", \"Distrito\", \"Modalidad\", \"Enlace\"])\n", + "df.to_csv(\"Trabajos_Bumeran.csv\", index=False, encoding=\"utf-8\", sep=\"|\")\n", + "\n", + "print(\"Extracción completada. Datos guardados en 'Trabajos_Bumeran.xlsx'.\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4b5c1235-1191-4c1b-b035-a5cfbfb5cd5c", + "metadata": {}, + "outputs": [], + "source": [ + "#Gracias :)))))" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python [conda env:Tarea1]", + "language": "python", + "name": "conda-env-Tarea1-py" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.11" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/homework/hw1/259359_hw1_2025_1/Trabajos_Bumeran.csv b/homework/hw1/259359_hw1_2025_1/Trabajos_Bumeran.csv new file mode 100644 index 000000000..13e4ed1d6 --- /dev/null +++ b/homework/hw1/259359_hw1_2025_1/Trabajos_Bumeran.csv @@ -0,0 +1,522 @@ +Título|Descripción|Distrito|Modalidad|Enlace +Desarrollador Senior Java|"Publicado ayer +Lima, Lima, Peru +Descripción del puesto +En NTT DATA estamos buscando profesionales con experiencia como BACKEND JAVA - MICROSERVICIOS, apasionados por las tecnologías para formar parte de nuestro staff, participar en proyectos grandes y asumir nuevos retos. +Nuestro talento nos ha hecho poder decir con orgullo que somos una de las 6 empresas TOP de tecnologías del mundo. +Para incorporarte a nuestro equipo tendrás que contar con los siguientes requisitos: +Egresado, Bachiller o Titulado en Ingeniería de Sistemas, Software, Computación, Informática o afines. +Experiencia de 05 años a más trabajando con Java. +Experiencia en creación de Microservicios +Experiencia o Conocimientos en Programación Reactiva. +Experiencia en desarrollo cloud con Azure +Disponibilidad para trabajar de manera híbrida (2 veces por semana) +Si te encuentras interesado y cumples con los requisitos, hazme llegar tu CV Actualizado, Disponibilidad y Pretensiones a: mguardia(arroba)emeal.nttdata.com +“NTTDATA mantiene una política de contratación inclusiva, por lo que invita a cualquier persona a participar en el proceso de selección de la referencia"|Distrito no encontrado|No especificado|https://www.bumeran.com.pe/empleos/desarrollador-senior-java-ntt-data-1116752169.html +Software Architect|"Actualizado ayer +San Isidro, Lima, Peru +Descripción del puesto +Por encargo de nuestro cliente INTERSEGURO, empresa certificada como Great Place to Work y parte del Grupo INTERCORP, nos encontramos en la búsqueda de un(a) Software Architect. +🚀Lo que buscamos: +Node.js (2-3 años de experiencia): Habilidades sólidas en desarrollo backend. +Cloud (GCP, AWS o Azure) (1 año): Tu experiencia en la nube puede marcar la diferencia. +Contenedores (Docker) (1 año): Habilidades esenciales para la infraestructura moderna. +Bases de Datos SQL/MongoDB (3 años): Expertise en bases de datos relacionales y no relacionales. +Principios SOLID / Clean Code (1 año): Si sigues buenas prácticas y te apasiona escribir código limpio, te queremos en el equipo. +Microservicios - Event Driven (Deseable): Si tienes experiencia con arquitecturas de microservicios, ¡será un plus! +Frontend React (Deseable): Si sabes algo de React, ¡mejor aún! +💻 Lo que harás: +Desarrollarás soluciones innovadoras de backend usando Node.js. +Trabajarás con las últimas tecnologías en cloud computing y contenedores. +Colaborarás en un entorno ágil y dinámico, donde tu experiencia será clave para el crecimiento de la infraestructura y arquitectura. +🧑‍💻 Lo que ofrecemos: +Planilla directa del cliente.(Contrato Indeterminado). +EPS cubierto al 100% +Modalidad Híbrida. +Oportunidad de trabajar en proyectos desafiantes y de alto impacto. +Un entorno colaborativo donde tu voz será escuchada. +¡Posibilidad de crecer con nosotros mientras seguimos innovando! +Híbrido +Programación +Full-time, Indeterminado +Senior +1 vacante disponible +Conocimientos y habilidades valorados +Node.js - Avanzado +React - Avanzado"|Distrito no encontrado|No especificado|https://www.bumeran.com.pe/empleos/software-architect-talent-house-peru-s.a.c.-1116750633.html +Analista Programador Power Builder Junior|"Múltiples vacantes +Actualizado ayer +Lima, Lima, Peru +Descripción del puesto +Importante empresa del sector, se encuentra en la búsqueda de un Analista Junior, Programador Power Builder que cumple con el siguiente perfil: +Requisitos: +Egresado técnico o Universitartio de Ing. Sistemas. +Contar con 1 año de exp. minima en el cargo. +Experiencia con Microsoft Visual SourceSafe Explorer. +Manejo de herramientas como Oracle , base de datos, elaborar scripts y procedimientos. +Experiencia en Programación PowerBuilder 1 1, 1 2, o posterior. +Experiencia con Html, asp, javascript, jquery Java (Deseable). +Funciones: +Analizar, diseñar, desarrollar e implementar nuevas soluciones o proyectos informáticos mediante el uso de las tecnologías de información, dar mantenimiento y soporte a los sistemas del cliente servidor. +Mantener la disponibilidad de los sistemas educativos y administrativos de la organización de manera proactiva. +Administrar el óptimo funcionamiento de los sistemas y encontrar oportunidades de mejora."|Distrito no encontrado|No especificado|https://www.bumeran.com.pe/empleos/analista-programador-power-builder-junior-1116745817.html +DESARROLLADOR FRONT IOS|"Múltiples vacantes +Actualizado ayer +Comas, Lima, Peru +Descripción del puesto +Summit Consulting es una empresa líder en soluciones tecnológicas, comprometida con el desarrollo de proyectos innovadores y la mejora constante de nuestros servicios. Actualmente, estamos en búsqueda de un Desarrollador Front-end Android altamente motivado y con experiencia para unirse a nuestro equipo dinámico. +Requisitos: +Mínimo 3 años desarrollando aplicaciones nativas para iOS preferiblemente para el sector financiero. +Experiencia en desarrollo de interfaces (UI/UX) optimizadas, intuitivas y accesibles. +Conocimiento comprobado y sólido en frameworks para iOS y Android, manejo de APIs RESTful. +Experiencia trabajando bajo metodologías ágiles (Scrum) y cascada. +Familiarizado con herramientas de integración continua (CI/CD). +Conocimientos comprobados en SWIFT +Formación Académica: +Técnico en las Carreras: Ingeniería de Sistemas, Ingeniería Informática, Ingeniería de Software o afines. +Bachiller y afines +Titulación y afines Especialización: +Desarrollar Nativo ¡OS - Avanzado +Diseño y Experiencia de Usuario (UI/UX) - Intermedio +Metodologías Ágiles / Cascada - Intermedia +Otros conocimientos: +Ofimática (Word, Excel, PowerPoint) – Intermedio +Ingles a nivel intermedio (deseable) – Intermedio +Manejo de Jira – Intermedio Competencias +Pensamiento Crítico +Resolución de Problemas +Comunicación Asertiva +Trabajo en equipo +Flexibilidad al cambio +Empatía +Negociación +Toma de Decisiones +Liderazgo +Orientación a Resultados +Objetivo del Puesto: +Desarrollar interfaces atractivas, seguras y altamente funcionales en aplicaciones nativas para iOS, asegurando experiencias óptimas para el usuario y alineadas a los objetivos bajo metodologías ágiles y/o cascada. +Funciones del Puesto: +Disponibilidad para laborar de lunes a viernes de 8:00 am - 6:45 pm +Desarrollar aplicaciones móviles nativas para iOS utilizando frameworks actuales. +Implementar interfaces de usuario optimizadas basadas en diseños y principios UI/UX, asegurando accesibilidad y rendimiento. +Integrar servicios y APIs RESTful, manejando respuestas JSON y consumo eficiente de recursos. +Aplicar y promover buenas prácticas técnicas: Clean Architecture, patrones de diseño, modularización y Testing Automatizado (unitario y UI). +Participar activamente en revisiones de código, manteniendo estándares de calidad y seguridad. +Coordinar estrechamente con los equipos de diseño UX/UI, backend y QA para asegurar una integración efectiva. +Documentar adecuadamente código y arquitectura técnica. +Proponer mejoras técnicas y funcionales que impulsen la innovación continua y la calidad del producto. +Si cuentas con las habilidades y experiencia necesarias para esta posición, no dudes en postular. Estamos ansiosos por recibir tu aplicación y conocer más acerca de ti. 🔔 ¡Únete a nuestro equipo y sé parte del éxito de Summit SAC! +(NOTA: Solo se va considerar los postulantes que cumplan específicamente con el perfil)"|Distrito no encontrado|No especificado|https://www.bumeran.com.pe/empleos/desarrollador-front-ios-summit-s.a.c-1116742593.html +Analista Programador de Tecnologías de la información|"Actualizado hace 2 días +El Agustino, Lima, Peru +IQFARMA, Laboratorio farmacéutico nacional con más de 61 años al servicio de la salud, dedicado a la fabricación y comercialización de productos de marca de diferentes especialidades farmacéuticas y genéricos de calidad que se distribuyen con gran éxito en el mercado privado e institucional. Actualmente nos encontramos en la búsqueda de: Analista de Tecnologías de la información. +Descripción del puesto +Requisitos: +Profesionales en Ingenieria de Sistemas o carreras a fines +Manejo de Office a nivel avanzado +3 años de experiencia laboral como mínimo en el desarrollo de aplicaciones Web sobre Plataforma en .Net y base de datos.- Experiencia en Desarrollo e implementación sistemas. +Experiencia en desarrollo de proyectos particulares + +Habilidades duras: +*SQL server experto +*JavaScript (Jquery y Json) experto +*Aplicaciones web responsive experto +*Visual sstudio 2019 C# experto +*Visual studio 2010 C# intermedio +*Python intermedio (u otras herramientas de IA) +*Team Foundation +*Azure Devops +Habilidades blandas: +*Capacidad de análisis +*Lógica +*Comunicación +*Proactividad +Funciones: +Desarrollo de softwares según la necesidad de la empresa. +Documentar todos los softwares desarrollados. +Impulsar y promover el uso de herramientas de inteligencia artificial en los proyectos. +Detección de oportunidades y proponer mejoras según análisis +Optimizar constantemente todas las capas del software desde la base de datos hasta el front - end. +Cumplir y hacer cumplir los procedimientos de la empresa. +Participar en reuniones con los diversos equipos involucrados para definir la solución de las iniciativas. +Cumplir con los tiempos asignados en los desarrollos de requerimientos de usuario y reportar avances de las actividades realizadas. +Velar por el correcto funcionamiento de los softwares desarrollados permanentemente.."|Distrito no encontrado|No especificado|https://www.bumeran.com.pe/empleos/analista-programador-de-tecnologias-de-la-informacion-instituto-quimioterapico-s.a.-iqfarma-1116740821.html +Frontend Developer React|"Múltiples vacantes +Actualizado hace 2 días +Pueblo Libre, Lima, Peru +Descripción del puesto +ZUTUN. es una empresa de software boutique con amplia experiencia en banca, seguros, fintech y retail. Nuestro colectivo funciona como un verdadero equipo, valorando la colaboración, la sinergia y el apoyo mutuo entre nuestros miembros, reconociendo que el talento es el núcleo y el equipo es quien juega el partido. +Te invitamos a participar de proceso FRONTEND DEVELOPER REACT y ser parte de esta experiencia: +REQUISITOS: +Experiencia mínima de 2 años con React JS en aplicaciones SSG (Static Site Generation). +Experiencia mínima de 2 años de experiencia Typescript. +Experiencia de 1 año con aplicaciones web SSR (Server Side Rendering) o híbridas desarrolladas con Node. +CSS avanzado: Animaciones, variables, preprocesadores (SASS/SCSS). +Frameworks de CSS: Tailwind CSS, Materialize. +Conocimiento de patrones de diseño aplicado al frontend. +Manejo de Git (GitHub o GitLab) +Pruebas unitarias. +Aplicación de semanticismo y accesibilidad en la web. +Ideal conocimiento de: Core Web Vitals, SEO, Analítica digital (Ej. Google Analytics), AWS, IaC, +Plataformas, ARC XP (CMS) y/o PIANO. +¿QUE OFRECEMOS? +Oportunidades de aprendizaje, donde tú eres responsable de tu desarrollo. +Trabajo en base al sentido común, metas, flexibilidad de horarios y de manera hibrida. +Una organización totalmente horizontal, donde se escuchan tus ideas y opiniones, sin jerarquías ni egos, basado en nuestra cultura C+ +Consideraciones: Recibo por honorarios, tiempo de contratación: 3 meses renovables. +Híbrido +Programación +Full-time, Temporal +Semi Sr +2 vacantes disponibles +Conocimientos y habilidades valorados +React - Intermedio"|Distrito no encontrado|No especificado|https://www.bumeran.com.pe/empleos/frontend-developer-react-maseka-consulting-s.a.c.-1116739942.html +Analista Programador de Sistemas - Híbrido|"Actualizado hace 3 días +Santa Anita, Lima, Peru +Descripción del puesto +Tecsup, instituto líder en educación tecnológica con 40 años en el mercado formando profesionales innovadores y éticos. Reconocido como una de las mejores instituciones educativas para trabajar. ¡Postula y únete a nuestra COMUNIDAD DE INNOVADORES! +En esta oportunidad se busca un Analista Programador de Sistemas con las siguientes características: +Perfil Profesional: +Profesional de la carrera de Desarrollo de Software o similares. +Experiencia mínima de 5 años como programador de sistemas, Desarrollador Full Stack de sistemas o similares. +Conocimiento en Lenguaje de Programación JAVA, JavaScript, JSON, Angular. +Conocimiento de estandares de diseño web. +Conocimiento de PL/SQL. +Conocimiento en metodologías ágiles. +Funciones: +Atender los requerimientos de los usuarios para mejora o nuevas funcionalidades de los sistemas de información. +Analizar los requerimientos del usuario, con la finalidad de entender las necesidades correspondientes. +Plantear mejoras a las aplicaciones existentes con la finalidad de agilizar el trabajo del usuarioRealizar el control de calidad de las aplicaciones para un correcto funcionamiento del mismo. +Realizar el mantenimiento de aplicaciones por nuevas funcionalidades solicitadas por el usuario. +Investigar y proponer nuevas herramientas de TI en el mercado en lugar de desarrollarlas. +Asesorar a otras áreas en los proyectos relacionados a TI. +Capacitar al usuario en el uso de la aplicación a fin de mantener permanentemente actualizado frente a los cambios tecnológicos. +Elaborar y actualizar los manuales de usuario para el uso de los colaboradoresMonitorear el avance de las actividades asignadas a los programadores web. +Elaborar y actualizar la documentación de los sistemas informaticos existentes. +Desarrollar nuevas aplicaciones para atender las necesidades de los usuarios. +Importante considerar: +Modalidad de trabajo: Hibrido +Horario de trabajo: Lunes a Viernes de 8:00 am a 6:00pm +Lugar de Trabajo: Santa Anita +""En Tecsup nos comprometemos con la igualdad de oportunidades. Todas las personas serán consideradas en el proceso de postulación""."|Distrito no encontrado|No especificado|https://www.bumeran.com.pe/empleos/analista-programador-de-sistemas-hibrido-tecsup-1116737470.html +"Data Scientist Associate | Desarrollo de Modelos Riesgos"|"Publicado ayer +San Isidro, Lima, Peru +Descripción del puesto +¿Qué perfil buscamos? +Profesional de las carreras de Ing. Estadística, Ing. de Sistemas, Ing. de Software, o afines. +2 años de experiencia en puestos similares. +Conocimiento avanzado en programación con Python, SQL y PySpark. +Experiencia en desarrollo e implementación de modelos estadísticos y técnicas de machine learning. +Habilidades analíticas sólidas, capacidad para traducir datos complejos en hallazgos accionables para el negocio. +¿Qué retos te esperan? +Colaborar en la planificación de sprints, daily meetings, demos y realiza las retrospectivas correspondientes. +Adoptar herramientas de desarrollo WOW (engines estandar y modelos), con el objetivo de ser el frente de consultoria transversal al área de GRM. +Adoptar y difundir el uso de librerias analiticas (procesamiento , análisis, modelamiento, reportería y calibración), con el objetivo de capacitar a los equipos de la COE y se aplique en el E2E de modelos estadísticos. +Estandarizar aplicando lineamientos en el desarrollo de proyectos que aporten valor al proceso y a la vez que reduzcan el tiempo de entrega. +Difundir el uso de las herramientas de innovación (IG, Gen IA) y data, siendo responsable de las POCs y demos en el area de GRM. +Gestionar la plataforma Datio/ADA en temas de depuración de espacio, migración de componentes assets/notebooks, compactación de bases, adopción de lineamientos y administración de usuarios/tallas/kernel. +Híbrido +Programación +Full-time, Indeterminado +Senior +1 vacante disponible +Conocimientos y habilidades valorados +Python - Avanzado +SQL - Avanzado"|Distrito no encontrado|No especificado|https://www.bumeran.com.pe/empleos/data-scientist-associate-%7C-desarrollo-de-modelos-riesgos-bbva-1116752543.html +Frontend Developer React|"Publicado ayer +La Victoria, Lima, Peru +Descripción del puesto +En Experis Perú buscamos al mejor talento para sumarse a los desafíos de la era digital y llevar su carrera a un siguiente nivel. Por ello, te invitamos a que formes parte del reto como BACKEND DEVELOPER en el rubro de medios de la comunicación: +BACKEND DEVELOPER +Requisitos para postular al cargo: +Profesional de las carreras de Ingeniería de sistemas, industrial, administración o afines. +Experiencia mayor a 3 años en React y REST Api's +Experiencia y manejo avanzado de Typescript +Uso intermedio de Tailwind CSS - Indispensable +Experiencia en manejo de pruebas unitarias y uso de Git +Funciones principales del puesto: +Diseñar y crear funciones interactivas +Construir componentes reutilizables +Escribir código para aplicaciones +Optimizar el rendimiento +Resolver errores +Analizar requisitos de aplicaciones +Documentar cambios en aplicaciones +La empresa ofrece al candidato seleccionado +Únete a una empresa líder a nivel global +Planilla Completa"|Distrito no encontrado|No especificado|https://www.bumeran.com.pe/empleos/frontend-developer-react-manpowergroup-peru-1116752520.html +Backend Developer NodeJs|"Publicado ayer +La Victoria, Lima, Peru +Descripción del puesto +En Experis Perú buscamos al mejor talento para sumarse a los desafíos de la era digital y llevar su carrera a un siguiente nivel. Por ello, te invitamos a que formes parte del reto como BACKEND DEVELOPER en el rubro de medios de la comunicación: +BACKEND DEVELOPER +Requisitos para postular al cargo: +Profesional de las carreras de Ingeniería de sistemas, industrial, administración o afines. +Experiencia mayor a 3 años en NodeJs y REST Api's +Experiencia y manejo avanzado de Typescript +Experiencia mayor a 3 años con bases de datos. +Experiencia en manejo de pruebas unitarias y uso de Git +Funciones principales del puesto: +Desarrollar y mantener aplicaciones +Escribir la lógica de la aplicación web +Gestionar el intercambio de datos entre el servidor y los usuarios +Optimizar el rendimiento de la aplicación +Participar en todo el ciclo de vida del desarrollo de software +La empresa ofrece al candidato seleccionado +Únete a una empresa líder a nivel global +Planilla Completa"|Distrito no encontrado|No especificado|https://www.bumeran.com.pe/empleos/backend-developer-nodejs-manpowergroup-peru-1116752515.html +ANALISTA PROGRAMADOR DE SISTEMAS|"Publicado ayer +San Juan de Miraflores, Lima, Peru +Descripción del puesto +Nuestra empresa líder en servicios eléctricos de alta ingeniería, esta en busca de un profesional para cubrir la posición de Analista programador de sistemas. +Mision del puesto: Diseñar, desarrollar y mantener aplicaciones informaticas de la organización en función a la demanda de requerimientos, mediante la automatización de procesos, implementación de mejoras ,ejecución de correctivos de las aplicaciones existentes con la finalidad de garantizar la continuidad de las aplicaciones. +Perfil: +Titulado en Ingeniería Infórmatica, Ingeniería de Sistemas, Ciencias de la Computación o carreras afines. +Dominio en: NET 4.5 (C# y VB), SQL Server y/o MySQL (Indispensble), Jquery, Javascript, Angular, BootStrap y HTML. +Conocimiento en herramientas para pruebas Unitarias: Postman o Swagger (deseable) y herramienta.Low code: Power Apps (deseable). +03 años de experiencia en levantamiento y análisis de requerimientos, desarrollo e integración de aplicaciones y/o productos digitales. Experiencia en el desarrollo e implementación de proyectos de tecnología +Disponibilidad para laborar presencialmente en San Juan de Miraflores, lunes a viernes. +¿Que funciones desempeñaras? +Participar en la captura de requerimientos y gestionar su atención mediante prácticas ágiles. +Analizar, diseñar aplicaciones y/o productos digitales mediante el uso de prácticas ""User Interface"". +Desarrollar, mantener y brindar soporte a las aplicaciones de la organización. +Realizar pruebas unitarias y asegurar la calidad del código generado usando herramientas de validación. +Colaborar con el equipo de desarrollo en la definición y diseño de arquitecturas de servicios. +Asistir y capacitar a los usuarios finales de los programas y sistemas de información de la organización. +Otras funciones designadas por su Jefe inmediato. +¿Que te ofrecemos? +Ingreso a planilla. +Capacitaciones. +Remuneración de acorde al mercado. +Subvención de alimentos al 50%. +Presencial +Programación +Full-time, Indeterminado +Semi Sr +1 vacante disponible"|Distrito no encontrado|No especificado|https://www.bumeran.com.pe/empleos/analista-programador-de-sistemas-tecsur.s.a-1116752494.html +Jefe de sistemas (TI)|"Publicado ayer +Miraflores, Lima, Peru +Descripción del puesto +En Experis Perú buscamos al mejor talento para sumarse a los desafíos de la era digital y llevar su carrera a un siguiente nivel. Por ello, te invitamos a que formes parte del reto como Jefe de TI (Desarrollo) para la ciudad de Lima. +Funciones: +Supervisar el desarrollo e implementación de los sistemas de generación y validación de valores de seguridad, así como los de cifrado/descifrado de información de intercambio. +Supervisar el desarrollo del sistema prepago del Switch. +Supervisar el desarrollo y soporte de los sistemas de interconexión e integración de entidades y nuevos servicios. +Realizar seguimiento y mantener actualizada la documentación de los cambios que se efectúen en el software de los aplicativos a su cargo. +Revisar periódicamente los informes del Centro de Cómputo respecto a los procesos en línea con el fin de optimizarlos +Requisitos para el puesto: +Profesional titulado o bachiller en Ingeniería de Sistemas, Ingeniería de Software, o afines. +Mínimo 5 a 7 años de experiencia en cargos similares, preferiblemente en el sector financiero o afines. +Conocimiento avanzado en lenguajes de programación (C, C++, Java, Python, .NET), bases de datos, microservicios y normas de seguridad (PCI DSS, ISO 27001). +Experiencia en gestión de equipos y proyectos ágiles (Scrum, Kanban). +Inglés avanzado y habilidades de comunicación efectiva. +Te ofrecemos: +Modalidad de trabajo híbrida. +Oportunidades de crecimiento y desarrollo profesional. +Planilla directa con el cliente con todos los beneficios de ley. +En Experis Perú, promovemos la inclusión e inserción laboral sin distinción por razón de discapacidad, género, orientación, identidad y expresión de género, lugar de origen o generación. Por ello ¡Todos los talentos son bienvenidos! +Híbrido +Programación +Full-time, Indeterminado +Jefe / Supervisor / Responsable +1 vacante disponible"|Distrito no encontrado|No especificado|https://www.bumeran.com.pe/empleos/jefe-de-sistemas-ti-experis-peru-1116752439.html +Programador Frontend Junior / Presencial|"Publicado ayer +La Victoria, Lima, Peru +Descripción del puesto +En Experis Perú buscamos al mejor talento para sumarse a los desafíos de la era digital y llevar su carrera a un siguiente nivel. Por ello, te invitamos a que formes parte del reto como Programador Frontend Junior para el sector tecnología: +Requisitos: +2 años de experiencia trabajando con React JS en aplicaciones SSG (Static Site Generation) +1 año de Experiencia con aplicaciones web SSR (Server Side Rendering) o híbridas desarrolladas con Node. +2 años de experiencia trabajando con Typescript. +Manejo avanzado de CSS: Animaciones, variables, preprocesadores (SASS/SCSS). +Uso de frameworks de CSS: Tailwind CSS, Materialize. +Conocimiento de patrones de diseño aplicado en el frontend. +Manejo de control de versiones con Git en GitHub o GitLab. +Pruebas unitarias. +Funciones: +Desarrollo frontend: Implementación de interfaces, optimización de rendimiento, integración de APIs +Testing y documentación +Colaboración y reuniones técnicas"|Distrito no encontrado|No especificado|https://www.bumeran.com.pe/empleos/programador-frontend-junior-presencial-manpowergroup-peru-1116752262.html +Analista Programador|"Múltiples vacantes +Publicado ayer +San Isidro, Lima, Peru +Descripción del puesto +More digital. More human. More Minsait. Somos una empresa líder global en tecnología y consultoría digital que conecta personas, tecnología y negocios para generar crecimiento, transformación e impacto positivo y sostenible. +¿A quién buscamos? +Buscamos Analista Programador con experiencia en el rubro y ganas de sumarse a nuestros equipos multidisciplinarios para desarrollar soluciones innovadoras. +Requisitos: +Egresados o bachiller de ingeniería de software o carreras afines. +2 a 3 años de experiencia en desarrollo e integración de sistemas. +Diseño y desarrollo de soluciones con Apache NiFi. +Desarrollo en Groovy para manipulación de datos. +Implementación de componentes en SQL. +Experiencia con bases de datos SQL y NoSQL. +Desarrollo de integraciones de sistemas y procesos ETL (Extract, Transform, Load). +Diagnóstico y solución de errores en los programas. +Implementación de medidas de seguridad en las soluciones desarrolladas. +Colaboración con equipos de desarrollo y operaciones para la implementación y mantenimiento de aplicaciones. +Comunicación efectiva con los stakeholders sobre avances del proyecto. +Conocimientos valorados (Deseables): +Creación y optimización de flujos de datos en Apache NiFi. +Scripting con Groovy. +Protocolos de comunicación: REST, MQTT, Kafka, JMS. +Monitoreo y logging para seguimiento de procesos. +Condiciones de trabajo: +Modalidad Híbrida (2 veces por semana en oficinas) en el distrito de San Isidro. +Horario de trabajo de Lunes a Viernes de 9:00am a 6:30pm."|Distrito no encontrado|No especificado|https://www.bumeran.com.pe/empleos/analista-programador-indra-peru-1116752132.html +FullStack Developer - Por proyecto|"Múltiples vacantes +Publicado ayer +Cercado De Lima, Lima, Peru +Descripción del puesto +Funciones: +Diseñar, desarrollar e implementar aplicaciones web y móviles con buenas prácticas de desarrollo. +Implementar y consumir APIs REST para la integración eficiente entre sistemas. +Gestionar repositorios y entornos de desarrollo con Git, GitHub o Bitbucket. +Configurar y administrar contenedores con Docker y Kubernetes para optimizar despliegues. +Trabajar junto al Product Owner para refinar historias de usuario y asegurar una correcta interpretación de los requerimientos. +Requisitos: +Profesional egresado o bachiller en Ingeniería de Sistemas, Informática o carreras afines. +Capacidad de supervisión sin ejercer un rol de liderazgo técnico formal. +Conocimientos y experiencia: +Experiencia en desarrollo Full Stack. +Manejo de tecnologías de frontend (Angular,JavaScript,Bootstrap) y backend (Python y PHP) +Conocimientos en bases de datos SQL y/o NoSQL. +Ofrecemos: +Proyecto de 3 meses (renovable) +Presencial 100% ( a partir del 4to mes hibrido) +Sede en la victoria (st catalina) +Lunes a viernes de 9:00 a. m. a 6:00 p. m. +RXH +Equipos +Presencial +Programación +Full-time, Indeterminado +Semi Sr +2 vacantes disponibles"|Distrito no encontrado|No especificado|https://www.bumeran.com.pe/empleos/fullstack-developer-por-proyecto-protiviti-peru-1116752046.html +Desarrollador Java/Oracle weblogic|"Múltiples vacantes +Publicado ayer +San Isidro, Lima, Peru +Descripción del puesto +🌟 ¡ÚNETE A INDRA Y CREA EL FUTURO DE LA TECNOLOGÍA! 🚀 +En Indra seguimos creciendo y buscamos a un Desarrollador Java/Oracle WebLogic para formar parte de nuestro equipo. Si eres un apasionado de la tecnología, tienes experiencia en plataformas de datos y quieres formar parte de una empresa global en constante innovación, ¡este es tu lugar! +Requisitos: +Egresados o bachiller de ingeniería de software o carreras afines. +Experiencia en Desarrollo Java, Framework: Hibernate, Spring boot , servicio y microservicios | IDE: Eclipse. +Experiencia en tecnologías basadas en Javascript (Sencha| Ext.js) – Indispensable. +Experiencia en Administración y despliegue en servidores Oracle, WebLogic, WAS y JBoss. +Experiencia en Oracle Cloud Infrastructure (OCI). +Experiencia en Oracle Integration Cloud (OIC) +Experiencia en Oracle REST +Experiencia en Exadata Database +Experiencia en Data Service (ORDS)."|Distrito no encontrado|No especificado|https://www.bumeran.com.pe/empleos/desarrollador-java-oracle-weblogic-indra-peru-1116751791.html +Analista Programador en Odoo (Python)|"Múltiples vacantes +Publicado ayer +Lima, Lima, Peru +Descripción del puesto +¡Buscamos un Desarrollador con experiencia en Odoo y Python! +Si tienes experiencia en desarrollo con Odoo y Python y buscas un nuevo desafío, ¡esta oportunidad es para ti! 💻📊 Buscamos un Desarrollador que participe en el diseño, desarrollo e implementación de soluciones tecnológicas personalizadas en Odoo y otros sistemas. +El candidato ideal debe tener sólidos conocimientos en desarrollo backend, tecnologías web y bases de datos, con interés en aprender y aplicar herramientas DevOps y trabajar con infraestructura en la nube. +📌 Requisitos +🎓 Formación Académica: +✅ Titulado, Bachiller o Técnico en Ingeniería de Sistemas, Computación, Software o carreras afines. +🛠️ Conocimientos Técnicos: +🔹 Experiencia en ERP Odoo: Desarrollo y personalización de módulos. +🔹 Dominio de Python para desarrollo backend. +🔹 Conocimiento en tecnologías web: HTML, CSS, JavaScript. +🔹 Manejo de bases de datos: PostgreSQL, SQL Server. +🔹 Experiencia con Git y control de versiones. +🔹 Deseable experiencia en herramientas DevOps (Docker, CI/CD) y Cloud (AWS, Google Cloud, Azure). +📌 Responsabilidades +✔ Desarrollar y personalizar módulos en Odoo según los requerimientos del negocio. +✔ Implementar soluciones backend y frontend con tecnologías modernas. +✔ Participar en la integración de sistemas y asegurar su correcto funcionamiento. +✔ Aplicar buenas prácticas de desarrollo para garantizar calidad y escalabilidad. +✔ Colaborar con el equipo técnico en la optimización del rendimiento del software. +✔ Documentar los desarrollos y brindar soporte técnico cuando sea necesario. +📌 Lo que ofrecemos +✨ Oportunidad de crecimiento y aprendizaje continuo. ✨ Participación en proyectos desafiantes y tecnologías innovadoras. ✨ Modalidad de trabajo flexible (según política de la empresa). ✨ Excelente ambiente de trabajo en equipo. +Presencial +Programación +Full-time, Indeterminado +Semi Sr +5 vacantes disponibles"|Distrito no encontrado|No especificado|https://www.bumeran.com.pe/empleos/analista-programador-en-odoo-python-ibr-peru-s.a.-1116751782.html +Analista Programador - NodeJs/Web HTML|"Publicado ayer +Lima, Lima, Peru +Descripción del puesto +Estamos en búsqueda de un profesional para cubrir la posición de: +Analista Programador +Misión: Ejecutar las actividades de análisis, diseño, programación y desarrollo de sistemas en concordancia con las necesidades requeridas por las áreas +Requisitos: +Profesionales de las carreras de computación e informática, ing de sistemas, afines. +Experiencia de 2 años en programación. +Sólidos conocimientos de NodeJS HTML + CSS Postgresql SQL Server +Otros conocimiento: Desarrollo mobile, a Nivel Básico. Ciclo de vida de desarrollo, OWASP, Desarrollo Seguro (deseable). +Funciones: +Desarrollar soluciones de software según lo solicitado por el cliente interno. +Diseñar la arquitectura y la estructura del sistema de software, incluyendo la creación de diagramas de flujo, modelos de datos y especificaciones técnicas. +Escribir código limpio y eficiente utilizando diferentes lenguajes de programación y tecnologías según las necesidades del proyecto. +Realizar pruebas de integración. +Ofrecemos: +Trabajo híbrido 2 veces por semana +Lunes a viernes de 9am a 6pm +EPS 100% +Capacitación constante en nuevas técnologías +Oportunidad de crecimiento a corto plazo +Excelente clima laboral +Presencial +Programación +Full-time, Indeterminado +Junior +1 vacante disponible"|Distrito no encontrado|No especificado|https://www.bumeran.com.pe/empleos/analista-programador-nodejs-web-html-grupo-tawa-1116751516.html +Desarrollador en Innovación y Automatización|"Publicado ayer +Lima, Lima, Peru +Descripción del puesto +CSTI Corp es una empresa peruana líder en la industria TI con más de 15 años en el mercado en países como Perú, Ecuador, Colombia, Costa Rica y Estados Unidos. +Ofrece soluciones de negocios en las líneas de Outsourcing, Licenciamientos SAP y Microsoft, soporte y mejora de aplicaciones, así como implementación y migración de sistemas bajo estrategias Cloud, aprovechando su alianza con marcas como Amazon, Azure, Huawei Cloud y Google Cloud. +Estamos en búsqueda de un Desarrollador Senior en Innovación y Automatización para potenciar nuestras soluciones tecnológicas y optimizar procesos. +🔍 ¿Qué buscamos? +Experiencia mínima de 5 años en una posición similar. +Dominio avanzado de Python. +Experiencia con Shell scripting (Bash & PowerShell). +Conocimientos en sistemas operativos: Windows, Linux y AIX (intermedio). +Experiencia en gestión de bases de datos. +Dominio de transacciones SQL y Queries avanzados en MSSQL, MySQL. +Desarrollo de aplicaciones en Python y JavaScript. +Conocimiento avanzado de Ansible. +Conocimientos intermedios en contenedores y Kubernetes. +Experiencia con Git y GitHub para desarrollo colaborativo. +Deseable experiencia como Full Stack Developer en Flask, Node.js, Angular y React. +💼"|Distrito no encontrado|No especificado|https://www.bumeran.com.pe/empleos/desarrollador-en-innovacion-y-automatizacion-csti-corp-1116751489.html +Desarrollador DevOps - Híbrido|"Publicado ayer +Lima, Lima, Peru +Descripción del puesto +CSTI Corp es una empresa peruana líder en la industria TI con más de 15 años en el mercado en países como Perú, Ecuador, Colombia, Costa Rica y Estados Unidos. +Ofrece soluciones de negocios en las líneas de Outsourcing, Licenciamientos SAP y Microsoft, soporte y mejora de aplicaciones, así como implementación y migración de sistemas bajo estrategias Cloud, aprovechando su alianza con marcas como Amazon, Azure, Huawei Cloud y Google Cloud. +Nos encontramos en la búsqueda de ""Desarrollador DevOps"": +Requisitos: +Experiencia de 2 a 3 años en desarrollo de aplicaciones de software. +Experiencia en CI/CD para aplicaciones moviles (Android / iOS) y conocimiento de las diferentes tiendas de aplicaciones en donde se realiza el despliegue de nuevas versiones de aplicaciones web, mobile, etc. +Experiencia creando pipelines de complejidad intermedia que involucre: Shell scripting, ansible, groovy. +Experiencia en despliegue de componentes en Kubernetes. +Experiencia trabajando en incidencias con herramientas DevSecOps. +Experiencia en Frontend en prácticas de CI/CD para aplicaciones/componentes Front-end (compilación, tipos de despliegue, ofuscamiento, SCA, SAST e implementarlas de forma automatizada). +Análisis de Requerimientos: trabajo con equipos para entender necesidades y diseñar soluciones en Jira - Conocimientosde metodologías ágiles (Scrum - Kanban). +Conocimientos en Jira Software y Jira Service Management: Administración de proyectos, configuración de workflows, permisos y notificaciones. +Conocimientos en Jira Assets (antes Insight): Gestión de activos dentro de Jira Service Management, creación de esquemas de objetos y relaciones. +Conocimientos en Jira Automation: Creación de reglas automatizadas usando Triggers, condiciones y acciones para optimizar flujos de trabajo. +Conocimiento del manejo de roles y permisos en Jira: configuración de esquemas de persmisos y acceso. +Conocimiento de integraciones con directorios de usuarios. +Conocimientos de programación y scripting en Jira REST Api. +Conocimientos de integraciones de Jira con plataformas cloud (AWS, Azure o GCP). +Conocimientos de programación Groovy. +De preferencia conocimientos en programación Java, Python o Node js. +Condiciones: +Modalidad Hibrida 2 veces a la semana en oficina en Chorrillos. +Salario bajo PLANILLA COMPLETA en CSTI. +Horario de lunes a viernes de 8:00 am a 6:00pm. +¡Ven y únete al equipo de CSTI CORP! +Híbrido +Programación +Full-time, Temporal +Semi Sr +1 vacante disponible"|Distrito no encontrado|No especificado|https://www.bumeran.com.pe/empleos/desarrollador-devops-hibrido-csti-corp-1116751467.html diff --git a/homework/hw1/241878_hw1_2025_1/requirements.txt b/homework/hw1/259359_hw1_2025_1/requirements.txt similarity index 94% rename from homework/hw1/241878_hw1_2025_1/requirements.txt rename to homework/hw1/259359_hw1_2025_1/requirements.txt index d291abb1c..0172a010d 100644 --- a/homework/hw1/241878_hw1_2025_1/requirements.txt +++ b/homework/hw1/259359_hw1_2025_1/requirements.txt @@ -1,10 +1,10 @@ -beautifulsoup4==4.12 -html5lib==1.1 -ipykernel==6.29 -ipywidgets==8.1 -jupyter==1.1 -lxml==5.3 -openpyxl==3.1 -pandas==2.2 -selenium==4.28 +beautifulsoup4==4.12 +html5lib==1.1 +ipykernel==6.29 +ipywidgets==8.1 +jupyter==1.1 +lxml==5.3 +openpyxl==3.1 +pandas==2.2 +selenium==4.28 tqdm==4.67 \ No newline at end of file