CursosEmpresasBlogLiveConfPrecios

Cómo continuar tu ruta de aprendizaje

Clase 21 de 21 • Curso de Fundamentos de Web Scraping con Python y Xpath

Clase anteriorSiguiente clase

Contenido del curso

Introducción al web scraping
  • 1
    ¿Qué es el web scraping?

    ¿Qué es el web scraping?

    02:06
  • 2
    ¿Por qué aprender web scraping hoy?

    ¿Por qué aprender web scraping hoy?

    03:05
  • 3
    Python: el lenguaje más poderoso para extraer datos

    Python: el lenguaje más poderoso para extraer datos

    03:21
Fundamentos de la web
  • 4
    Entender HTTP

    Entender HTTP

    07:02
  • 5
    ¿Qué es HTML?

    ¿Qué es HTML?

    08:08
  • 6
    Robots.txt: permisos y consideraciones al hacer web scraping

    Robots.txt: permisos y consideraciones al hacer web scraping

    05:41
XML Path Language
  • 7
    XML Path Language

    XML Path Language

    03:35
  • 8
    Tipos de nodos en XPath

    Tipos de nodos en XPath

    05:18
  • 9
    Expresiones en XPath

    Expresiones en XPath

    08:18
  • 10
    Predicados en Xpath

    Predicados en Xpath

    05:34
  • 11
    Operadores en Xpath

    Operadores en Xpath

    05:51
  • 12
    Wildcards en Xpath

    Wildcards en Xpath

    06:11
  • 13
    In-text search en Xpath

    In-text search en Xpath

    08:21
  • 14
    XPath Axes

    XPath Axes

    05:16
  • 15

    Resumen de XPath

    00:01
  • 16
    Aplicando lo aprendido

    Aplicando lo aprendido

    08:52
Proyecto: scraper de noticias
  • 17
    Un proyecto para tu portafolio: scraper de noticias

    Un proyecto para tu portafolio: scraper de noticias

    10:08
  • 18
    Construcción de las expresiones de XPath

    Construcción de las expresiones de XPath

    10:29
  • 19
    Obteniendo los links de los artículos con Python

    Obteniendo los links de los artículos con Python

    10:56
  • 20
    Guardando las noticias en archivos de texto

    Guardando las noticias en archivos de texto

    14:53
Conclusiones
  • 21
    Cómo continuar tu ruta de aprendizaje

    Cómo continuar tu ruta de aprendizaje

    02:13
    Mauricio Gomez

    Mauricio Gomez

    student•
    hace 5 años

    Facilmente este ha sido el curso que mas me ha gustado! Un crack Facundo!

      Felipe Andres Torres Haro

      Felipe Andres Torres Haro

      student•
      hace 5 años

      Realmente está muy bueno

    Alejandro Giraldo Londoño

    Alejandro Giraldo Londoño

    student•
    hace 5 años

    RESUMEN:"Recordando"

    ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■

    En este curso aprendimos :


    • Las bases fundamentales del webscraping y porqué es importante en la actualdiad. y porqué esta herramienta es útil conocerla y saberla usar como un backend o un data Scientist
    • El web scraping es uan actividad que se puede hacer en diferentes lenguajes de programación, y con distintas herramientas automatizables, ya sea desde código hasta pluggins de chrome.
    • Revisar el robots.txt para saber siempre lo que está restringido por el usuario administrador, y así no incurrir en problemas legales.
    • Revisar legalidad sobre extracción de datos del país donde pretendo realizar webscraping
    • Xpath Lenguage como un generador de patrones de búsqueda en un árbol del DOM. Es decir, un apuntador a un XML.

      "Xpath es a HTML como REGEX es a un documento de texto. Facundo Nicolás García Martoni"

    • La variabilidad de las expresiones Xpath varían en función del recorrido que se tome en el HTML, en el sitio web como tal y sus desarrolladores, así como las visicitudes del tiempo.
    • HTTP es un protocolo de comunicación para la transferencia de información. Así habla el cliente y el servidor.
    • HTTP es un paquete que lleva consigo HTML, CSS, Js, Web APIs. Y el servidor da una respuesta numérica en un intervalo de (100-500) que son respuestas a sucesos con el servidor. Van desde la abnegación de información a la satisfación de la solicitud.
    • Preparar el ambiente de trabajo apropiado en python es crucial, y lo aprendimos en diferentes OS, sobre Cmder en Windows y sobre las buenas prácticas de los ambientes virtuales.
    • Aprendimos las librerías Request, Lxml, Os, datetime, autopep8
    • Sobre manejo de errores, creación de archivos y carpetas en función de Noticias scrapeadas.
    • Utilizamos manejadores contextuales y desarrollamos un scraper robusto que colecta noticias del diario Colombiano "la republica"
      Héctor Soto  Huamaní

      Héctor Soto Huamaní

      student•
      hace 4 años

      Los mejores resúmenes del curso, crack. :D

    Centli Allan Garcés Buendia

    Centli Allan Garcés Buendia

    student•
    hace 5 años

    Y yo que pensaba que Feddy y David Aroesti eran los únicos dioses en el olimpo de Platzi. Que grato es ver que ahí habitan más profesores increíbles. Eres grande Facundo, aunque esto tiene un por qué, me tocó que el profe me comentara post hechos en cursos pasados de python, por lo que puedo asumir que se echó todos los relacionados con ciencias de datos y de ahí armo este curso, se nota porque este curso tiene cubiertas todas las quejas que se expresan en los demás.

    Gracias por tu dedicación profe Facundo.

    Joan Benavides Olivera

    Joan Benavides Olivera

    student•
    hace 5 años

    Eres con diferencia el profe que más me ha gustado. Gracias crack.

      Moisés Manuel Morín Hevia

      Moisés Manuel Morín Hevia

      student•
      hace 5 años

      QUé bueno, yo escojo a Anahí Salgado.

    Bryan Javier Calero Robleto

    Bryan Javier Calero Robleto

    student•
    hace 5 años

    Hola, compañeros me gustaria compartirles mi proyecto de scraping, por si quiere practicar, es un scraper de tiempos verbales en varios idiomas: https://github.com/bcalero97/languague_scraper

      Moisés Manuel Morín Hevia

      Moisés Manuel Morín Hevia

      student•
      hace 5 años

      Thanks.

    María José Medina

    María José Medina

    student•
    hace 5 años

    En general fue un buen curso. Vengo de tomar los cursos de ingenieria de datos y de web scrapping y definitivamente creo que este quedaria mejor como inicio en el path de Data Engineer.

    Maslov Viloria

    Maslov Viloria

    student•
    hace 5 años

    CONCLUSIONES

    Scraping: Extraer información de la web de manera autómatica

    Ventajas No dependo de una API No tengo limitaciones de ningun tipo en el tiempo de extraer información (write limit) y en que información puedo extraer

    Desventajas Siempre vamos a depender de la estructura XML de la pagina y esto lo vimos evidenciado para cuando se extrajeron las primeras expresiones a la fecha

    Proceso:

    1. URL : tener una URL semila
    2. Request : Realizar los requerimiento a esta URL
    3. Response: Obtengo una respuesta de esta URL en formato XML que es la que vamos a parsear, es decir a obtener mis items
    4. Populate Items : obtener la información que deseo de la respuesta
    5. More URLs : a partir de la URL semilla ir a más URLs y de estas URLs repito el proceso

    Hacer scraping implica responsabilidad:

    Dar crédito de donde obtuve la data No publicar nada sin estar seguro de que es legal No sobrecargar sitios Y recuerda: Nunca es anónimo al hacer scraping

    Jose Colmenares

    Jose Colmenares

    student•
    hace 5 años

    Facundo! Que gran curso! Tomé el consejo de unos compañeros de tomar este curso antes de los otros de Web Scraping y ahora creo que puedo hacerlos mucho más rápido y comprender mejor todo. Muchas gracias!

      Moisés Manuel Morín Hevia

      Moisés Manuel Morín Hevia

      student•
      hace 5 años

      estuvo bueno, ahora a aplicarlo.

    Fabricio Escalante Pérez

    Fabricio Escalante Pérez

    student•
    hace 5 años

    Muy buen profe y excelente curso. Justo acabando el curso hice este simple programa para obtener un listado de las canciones de una playlist de spotify en un archivo de texto https://github.com/ShortEmperor/Spotify-Playlist-ToText

    Ray Trápala

    Ray Trápala

    student•
    hace 4 años

    Muy buen curso

    Hice el scrap de una página para extraer los ticker symbol de las acciones, nombres y la industria Esta página tiene una serie de pestañas para mostrar los ticker symbols pero, como le hago para navegar entre ellos? Se ve en otro curso? Por el momento dejo la extracción de los primeros 500 (que es la cantidad por default en la página)

    import requests import lxml.html as html import os from requests.models import Response STOCKS_HOME = 'https://www.stockanalysis.com/stocks' XPATH_TICKER = '//tbody//tr//td[1]/a/text()' XPATH_COMPANY_NAME = '//tbody//tr//td[2]/text()' XPATH_INDUSTRY = '//tbody//tr//td[3]/text()' #------------------------------------------------------------------------------- def extract_ticker_symbol(page_parsed: html) -> list: ''' Summary: Function in charge of extract Ticker Symbol from the page Parameters: page_parsed -> A document with the capabiblity to be used with Xpath Returns: The list with the Ticker Symbols Warning: For now, it only extracts the first 500/6066 ticker symbols because i dont know how to navigate the web ''' ticker_symbols_list = page_parsed.xpath(XPATH_TICKER) return ticker_symbols_list #------------------------------------------------------------------------------- def parse_home(link_response: Response) -> str: ''' Summary: Function that parse HTML to a document tha can be used with Xpath Parameters: link_response -> Receives the response from the request to extract the html to parse it and be a valid xpath docuement Reutrns: Returns the page parsed to use it with Xpath ''' # home -> contains the html from the response home = link_response.content.decode('utf-8') # parsed -> transform the html to a special document where we can use Xpath parsed = html.fromstring(home) return parsed #------------------------------------------------------------------------------- def get_conection(link: str) -> int: ''' Summary: Stablish conncetion to the page so it can start scrapin Parameters: link -> Receives the page link to scrap Returns: int -> Returns the status code number ''' try: # Bring and save the response from Server response: requests.Response = requests.get(link) # Extract the status code and verify to be a 200 if response.status_code != 200: raise ValueError(f'Failed to reach {link}') if response.status_code == 200: return response else: raise ConnectionError(f'Check the Connection') except ValueError as ve: print(ve) except ConnectionError as ce: print(ce) #------------------------------------------------------------------------------- def run(): ''' Summary Manages the app flow, checking first the connection, then parses home to use it with Xpath and, finally, uses it to extract information ''' # Catches the response response = get_conection(STOCKS_HOME) try: # Verifying status code if response.status_code == 200: parsed = parse_home(response) ticker_symbol_list = extract_ticker_symbol(parsed) print(ticker_symbol_list) else: print(f'Failed in stablish connection') except AttributeError as ae: print(f'Check URL format') #------------------------------------------------------------------------------- if __name__ == '__main__': run()
      Cowessess Nuka

      Cowessess Nuka

      student•
      hace 4 años

      this post is really very good thank you for sharing this information with us

      Cowessess Nuka

      Cowessess Nuka

      student•
      hace 4 años

      Thanks for the post and effort! vidmate download mobdro tv

    Carlos Schmilinsky T

    Carlos Schmilinsky T

    student•
    hace 5 años

    chicos los invito a ver mi codigo en git hub, hice que se guardaran los datos en formato csv(pandas) para que se puediese guardar en una base de datos 😃

    https://github.com/antoine1238/WS-News.git

    Angello Villanueva Menichetti

    Angello Villanueva Menichetti

    student•
    hace 5 años

    Uno de los mejores cursos que he tomado. Si hubiera comenzado con este cursos habría tenido las bases para los demás y no me habría quedado estancado. El profesor es de los mejores de Platzi! un Crack!

    Carolina Acosta Muñoz

    Carolina Acosta Muñoz

    student•
    hace 5 años

    Excelente profesor! ... ojalá nos siga compartiendo todo ese conocimiento aquí en Platzi <3 <3 <3

    bryan Quispe Valeriano

    bryan Quispe Valeriano

    student•
    hace 5 años

    excelente curso, uno de los mejores de platzi

    César Daniel Carrasco Gutiérrez

    César Daniel Carrasco Gutiérrez

    student•
    hace 4 años

    Primero indico que el curso me ha sido de bastante ayuda ya que he aprendido las bases del scraping utilizando Xpath y Python.

    Lamentablemente no he podido lograr que dentro de la carpeta que se crea con la fecha del día en que se ejecuta el programa quede algún tipo de archivo, genere los cambios correspondientes de donde debe sacar la información (ya que con el tiempo han modificado la pagina de La Republica.

    Adjunto el código (aunque solo varia en las rutas de la pagina) para que alguien me apoye indicando cual es la razón que no quede un archivo.

    import requests import lxml.html as html import os import datetime HOME_URL = 'https://www.larepublica.co/' #XPATH_LINK_TO_ARTICLE = '//h2[@class="headline"]/a/@href' XPATH_LINK_TO_ARTICLE = '//div[@class="news V_Title_Img"]/h2/a/@href' #XPATH_TITLE = '//h1[@class="headline"]/a/text()' XPATH_TITLE = '//div[@class="mb-auto"]/h2/span/text()' #XPATH_SUMMARY = '//div[@class="lead"]/p/text()' PATH_SUMMARY = '//div[@class="lead"]/p/text()' #XPATH_BODY = '//div[@class="articleWrapper "]/p[not(@class)]/text()' XPATH_BODY = '//div[@class="html-content"]/p[not(@class)]/text()' def parse_notice(link, today): try: response = requests.get(link) if response.status_code == 200: notice = response.content.decode('utf-8') parsed = html.fromstring(notice) try: title = parsed.xpath(XPATH_TITLE)[0] title = title.replace('\"', '') summary = parsed.xpath(XPATH_SUMMARY)[0] body = parsed.xpath(XPATH_BODY) except IndexError: return with open(f'{today}/{title}.txt', 'w', encoding='utf-8') as f: f.write(title) f.write('\n\n') f.write(summary) f.write('\n\n') for p in body: f.write(p) f.write('\n') else: raise ValueError(f'Error: {response.status_code}') except ValueError as ve: print(ve)

    De ante mano muchas gracias.

      Facundo Nicolás García Martoni

      Facundo Nicolás García Martoni

      teacher•
      hace 4 años

      ¡Hola, compañero! No veo definida en ningún lado la variable "today", que estás usando dentro del with para crear los archivos 🤔

    Sebastián Andrade

    Sebastián Andrade

    student•
    hace 5 años

    Hola, les comprto a modo de aporte este script que me dice si mi colegio a subido nueva informacion o no hay nuevas circulares en la pagina, tambien dandome la opcion de ver las nuevas, aqui les dejo el repositorio, seria de mucha ayuda que lo vieran, me digan que tal esta y si pueden le regalen una estrella xdd

    https://github.com/Sgewux/SchoolScraper/blob/master/main.py

    pd: hago esto por la seccion de preguntas para que sea visto xd

      Héctor Eduardo López Carballo

      Héctor Eduardo López Carballo

      student•
      hace 5 años

      Me da mucho gusto que hayas hecho este proyecto. No sé mucho de python, pero ya te puse una estrellita. 😅

      Sebastián Andrade

      Sebastián Andrade

      student•
      hace 5 años

      Muchas gracias Hector

    Juan David Blanco Vergara

    Juan David Blanco Vergara

    student•
    hace 4 años

    tengo una pagina que por más que busque y meta codigo y cumpla con los parametros de scrapeo que uso en otras paginas, ésta no se deja scrapear y hago el awaitForSelector y luego type al id donde está el input para escribir y no hace nada y aparte se queda ahi hasta que la consola dice: TimeoutError: waiting for selector #rcp-zipcode-check failed: timeout 30000ms exceeded. He intentado de todo con este pagina y no se deja scrapear, saben algo que me puede ayudar?

      Facundo Nicolás García Martoni

      Facundo Nicolás García Martoni

      teacher•
      hace 4 años

      ¡Hola compañero! ¿Puedes compartir por favor una captura de pantalla de tu código, del error de la consola, y el link del repositorio del proyecto? Así podemos ayudarte con el código a la mano :D

    Camilo Andrés Ceballos Ortiz

    Camilo Andrés Ceballos Ortiz

    student•
    hace 4 años

    Alto capo Facundo

    Excelente curso

    HECTOR BARRERA

    HECTOR BARRERA

    student•
    hace 5 años

    Que buen curso

    Ignacio Sepulveda Muñoz

    Ignacio Sepulveda Muñoz

    student•
    hace 5 años

    Muchas gracias por el curso, muy recomendable!

Escuelas

  • Desarrollo Web
    • Fundamentos del Desarrollo Web Profesional
    • Diseño y Desarrollo Frontend
    • Desarrollo Frontend con JavaScript
    • Desarrollo Frontend con Vue.js
    • Desarrollo Frontend con Angular
    • Desarrollo Frontend con React.js
    • Desarrollo Backend con Node.js
    • Desarrollo Backend con Python
    • Desarrollo Backend con Java
    • Desarrollo Backend con PHP
    • Desarrollo Backend con Ruby
    • Bases de Datos para Web
    • Seguridad Web & API
    • Testing Automatizado y QA para Web
    • Arquitecturas Web Modernas y Escalabilidad
    • DevOps y Cloud para Desarrolladores Web
  • English Academy
    • Inglés Básico A1
    • Inglés Básico A2
    • Inglés Intermedio B1
    • Inglés Intermedio Alto B2
    • Inglés Avanzado C1
    • Inglés para Propósitos Específicos
    • Inglés de Negocios
  • Marketing Digital
    • Fundamentos de Marketing Digital
    • Marketing de Contenidos y Redacción Persuasiva
    • SEO y Posicionamiento Web
    • Social Media Marketing y Community Management
    • Publicidad Digital y Paid Media
    • Analítica Digital y Optimización (CRO)
    • Estrategia de Marketing y Growth
    • Marketing de Marca y Comunicación Estratégica
    • Marketing para E-commerce
    • Marketing B2B
    • Inteligencia Artificial Aplicada al Marketing
    • Automatización del Marketing
    • Marca Personal y Marketing Freelance
    • Ventas y Experiencia del Cliente
    • Creación de Contenido para Redes Sociales
  • Inteligencia Artificial y Data Science
    • Fundamentos de Data Science y AI
    • Análisis y Visualización de Datos
    • Machine Learning y Deep Learning
    • Data Engineer
    • Inteligencia Artificial para la Productividad
    • Desarrollo de Aplicaciones con IA
    • AI Software Engineer
  • Ciberseguridad
    • Fundamentos de Ciberseguridad
    • Hacking Ético y Pentesting (Red Team)
    • Análisis de Malware e Ingeniería Forense
    • Seguridad Defensiva y Cumplimiento (Blue Team)
    • Ciberseguridad Estratégica
  • Liderazgo y Habilidades Blandas
    • Fundamentos de Habilidades Profesionales
    • Liderazgo y Gestión de Equipos
    • Comunicación Avanzada y Oratoria
    • Negociación y Resolución de Conflictos
    • Inteligencia Emocional y Autogestión
    • Productividad y Herramientas Digitales
    • Gestión de Proyectos y Metodologías Ágiles
    • Desarrollo de Carrera y Marca Personal
    • Diversidad, Inclusión y Entorno Laboral Saludable
    • Filosofía y Estrategia para Líderes
  • Diseño de Producto y UX
    • Fundamentos de Diseño UX/UI
    • Investigación de Usuarios (UX Research)
    • Arquitectura de Información y Usabilidad
    • Diseño de Interfaces y Prototipado (UI Design)
    • Sistemas de Diseño y DesignOps
    • Redacción UX (UX Writing)
    • Creatividad e Innovación en Diseño
    • Diseño Accesible e Inclusivo
    • Diseño Asistido por Inteligencia Artificial
    • Gestión de Producto y Liderazgo en Diseño
    • Diseño de Interacciones Emergentes (VUI/VR)
    • Desarrollo Web para Diseñadores
    • Diseño y Prototipado No-Code
  • Contenido Audiovisual
    • Fundamentos de Producción Audiovisual
    • Producción de Video para Plataformas Digitales
    • Producción de Audio y Podcast
    • Fotografía y Diseño Gráfico para Contenido Digital
    • Motion Graphics y Animación
    • Contenido Interactivo y Realidad Aumentada
    • Estrategia, Marketing y Monetización de Contenidos
  • Desarrollo Móvil
    • Fundamentos de Desarrollo Móvil
    • Desarrollo Nativo Android con Kotlin
    • Desarrollo Nativo iOS con Swift
    • Desarrollo Multiplataforma con React Native
    • Desarrollo Multiplataforma con Flutter
    • Arquitectura y Patrones de Diseño Móvil
    • Integración de APIs y Persistencia Móvil
    • Testing y Despliegue en Móvil
    • Diseño UX/UI para Móviles
  • Diseño Gráfico y Arte Digital
    • Fundamentos del Diseño Gráfico y Digital
    • Diseño de Identidad Visual y Branding
    • Ilustración Digital y Arte Conceptual
    • Diseño Editorial y de Empaques
    • Motion Graphics y Animación 3D
    • Diseño Gráfico Asistido por Inteligencia Artificial
    • Creatividad e Innovación en Diseño
  • Programación
    • Fundamentos de Programación e Ingeniería de Software
    • Herramientas de IA para el trabajo
    • Matemáticas para Programación
    • Programación con Python
    • Programación con JavaScript
    • Programación con TypeScript
    • Programación Orientada a Objetos con Java
    • Desarrollo con C# y .NET
    • Programación con PHP
    • Programación con Go y Rust
    • Programación Móvil con Swift y Kotlin
    • Programación con C y C++
    • Administración Básica de Servidores Linux
  • Negocios
    • Fundamentos de Negocios y Emprendimiento
    • Estrategia y Crecimiento Empresarial
    • Finanzas Personales y Corporativas
    • Inversión en Mercados Financieros
    • Ventas, CRM y Experiencia del Cliente
    • Operaciones, Logística y E-commerce
    • Gestión de Proyectos y Metodologías Ágiles
    • Aspectos Legales y Cumplimiento
    • Habilidades Directivas y Crecimiento Profesional
    • Diversidad e Inclusión en el Entorno Laboral
    • Herramientas Digitales y Automatización para Negocios
  • Blockchain y Web3
    • Fundamentos de Blockchain y Web3
    • Desarrollo de Smart Contracts y dApps
    • Finanzas Descentralizadas (DeFi)
    • NFTs y Economía de Creadores
    • Seguridad Blockchain
    • Ecosistemas Blockchain Alternativos (No-EVM)
    • Producto, Marketing y Legal en Web3
  • Recursos Humanos
    • Fundamentos y Cultura Organizacional en RRHH
    • Atracción y Selección de Talento
    • Cultura y Employee Experience
    • Gestión y Desarrollo de Talento
    • Desarrollo y Evaluación de Liderazgo
    • Diversidad, Equidad e Inclusión
    • AI y Automatización en Recursos Humanos
    • Tecnología y Automatización en RRHH
  • Finanzas e Inversiones
    • Fundamentos de Finanzas Personales y Corporativas
    • Análisis y Valoración Financiera
    • Inversión y Mercados de Capitales
    • Finanzas Descentralizadas (DeFi) y Criptoactivos
    • Finanzas y Estrategia para Startups
    • Inteligencia Artificial Aplicada a Finanzas
    • Domina Excel
    • Financial Analyst
    • Conseguir trabajo en Finanzas e Inversiones
  • Startups
    • Fundamentos y Validación de Ideas
    • Estrategia de Negocio y Product-Market Fit
    • Desarrollo de Producto y Operaciones Lean
    • Finanzas, Legal y Fundraising
    • Marketing, Ventas y Growth para Startups
    • Cultura, Talento y Liderazgo
    • Finanzas y Operaciones en Ecommerce
    • Startups Web3 y Blockchain
    • Startups con Impacto Social
    • Expansión y Ecosistema Startup
  • Cloud Computing y DevOps
    • Fundamentos de Cloud y DevOps
    • Administración de Servidores Linux
    • Contenerización y Orquestación
    • Infraestructura como Código (IaC) y CI/CD
    • Amazon Web Services
    • Microsoft Azure
    • Serverless y Observabilidad
    • Certificaciones Cloud (Preparación)
    • Plataforma Cloud GCP

Platzi y comunidad

  • Platzi Business
  • Live Classes
  • Lanzamientos
  • Executive Program
  • Trabaja con nosotros
  • Podcast

Recursos

  • Manual de Marca

Soporte

  • Preguntas Frecuentes
  • Contáctanos

Legal

  • Términos y Condiciones
  • Privacidad
  • Tyc promociones
Reconocimientos
Reconocimientos
Logo reconocimientoTop 40 Mejores EdTech del mundo · 2024
Logo reconocimientoPrimera Startup Latina admitida en YC · 2014
Logo reconocimientoPrimera Startup EdTech · 2018
Logo reconocimientoCEO Ganador Medalla por la Educación T4 & HP · 2024
Logo reconocimientoCEO Mejor Emprendedor del año · 2024
De LATAM conpara el mundo
YoutubeInstagramLinkedInTikTokFacebookX (Twitter)Threads