Web Scraping con Nodejs y Puppeteer

แชร์
ฝัง
  • เผยแพร่เมื่อ 2 ม.ค. 2025

ความคิดเห็น • 100

  • @davidwebchile
    @davidwebchile 3 หลายเดือนก่อน +3

    Despues de 3 años viendo tus videos a 0.75, por fin puedo en reproduccion normal, estoy avanzando. Gracias Fazt!

  •  ปีที่แล้ว +24

    Para agregar en el json el "type": "module" cuando se crea y no tener que agregarlo manualmente se puede escribir en consola:
    npm init -y es6

  • @historiaseneltiempo6954
    @historiaseneltiempo6954 ปีที่แล้ว +10

    Muy bueno, vi muchísimos videos pero ninguno tan claro como el tuyo. Espero con ansias el curso de Puppetter!

  • @INDESCRIPTIBLE.
    @INDESCRIPTIBLE. 9 หลายเดือนก่อน +1

    🎯 Key Takeaways for quick navigation:
    00:00 *🚀 Introducción a Puppeteer y su funcionalidad en web scraping.*
    - Puppeteer como herramienta para automatizar navegadores Chrome o Chromium.
    - Funciones básicas de Puppeteer para abrir, navegar, extraer datos y realizar capturas de pantalla.
    - Importancia de comprender la estructura de una página web para interactuar con los elementos adecuados.
    02:17 *🛠️ Configuración inicial del proyecto y uso de módulos.*
    - Inicialización de un proyecto Node.js y configuración del archivo `package.json`.
    - Instalación de dependencias, en este caso, del módulo Puppeteer.
    - Uso de la sintaxis `import/export` en lugar de `require` para importar módulos en proyectos modernos de JavaScript.
    06:01 *📸 Captura de pantalla y operaciones comunes en Puppeteer.*
    - Ejemplo práctico de cómo tomar capturas de pantalla de páginas web utilizando Puppeteer.
    - Demostración de operaciones comunes como la navegación a través de páginas, la apertura de enlaces y la interacción con elementos de la página.
    - Utilización de métodos como `page.screenshot()` y `page.goto()` para realizar acciones específicas en una página web.
    12:03 *🖱️ Búsqueda de etiquetas en una página web con Puppeteer*
    - Utilización de la función `page. para buscar una etiqueta en una página web.
    - Uso de la propiedad `innerText` para especificar el texto dentro de la etiqueta.
    - Ejemplo práctico de búsqueda de una etiqueta específica en una página.
    13:25 *⏱️ Manejo de tiempos de espera en Puppeteer*
    - Explicación sobre la función `waitForTimeout()` para agregar tiempos de espera.
    - Reemplazo del método obsoleto `waitFor()` con la creación de una nueva promesa.
    - Ejemplo de espera de 5 segundos antes de realizar una acción en la página.
    16:11 *🧮 Evaluación de elementos en una página web con Puppeteer*
    - Uso de la función `page.evaluate()` para ejecutar código en el navegador.
    - Ejemplo de obtener el resultado de una operación matemática dentro del navegador.
    - Extracción de contenido HTML utilizando selectores y métodos del navegador.
    21:03 *🔄 Manipulación de datos dinámicos en Puppeteer*
    - Selección de elementos dinámicos en una página web con Puppeteer.
    - Uso de selectores y clases para acceder a contenido específico en una página.
    - Ejemplo de obtener y manipular datos de una página con contenido dinámico.
    24:18 *📑 Conversión y manipulación de objetos Node List en Puppeteer*
    - Explicación sobre la estructura especial Node List que retorna el navegador al seleccionar elementos.
    - Conversión de Node List a un arreglo de JavaScript para facilitar su manipulación.
    - Ejemplo de recorrer y extraer valores de un Node List para obtener datos específicos de la página.
    27:06 *🔄 Manipulación de datos dinámicos y creación de archivo JSON en Puppeteer*
    - Proceso para seleccionar elementos dinámicos en una página web y extraer datos utilizando selectores.
    - Utilización del módulo `fs` de Node.js para escribir datos en un archivo JSON.
    - Ejemplo práctico de guardar los datos extraídos de la página en un archivo JSON para su posterior uso.
    29:24 *💡 Aplicaciones y posibilidades de Puppeteer*
    - Exploración de diversas aplicaciones de Puppeteer, como la comparación de precios entre tiendas online.
    - Mención de la versatilidad de Puppeteer para extraer texto de diferentes dominios y crear resúmenes o compendios.
    - Invitación a estar atento a futuros videos donde se profundizará en el uso de Puppeteer y se ofrecerá un curso básico sobre la herramienta.
    Made with HARPA AI

  • @jorgejara6854
    @jorgejara6854 ปีที่แล้ว +2

    decirte "Te Amo"...será mucho? jaja gracias Fabi, por compartir esa materia gris, te sigo desde siempre, QUEREMOS EL CURSO!! jeje abrazo desde Argentina!

  • @seiya_dev
    @seiya_dev 11 หลายเดือนก่อน

    Muchas gracias por el contenido, tengo que entregar un trabajo a un cliente y me dijo que aprendiera web scraping para implementarlo.
    Excelente contenido!

  • @MegaSpartan1998
    @MegaSpartan1998 6 หลายเดือนก่อน

    Excelente tutorial amigo, en la empresa donde estoy tienen un proceso de ecommerce donde comparan los precios de productos de la competencia pero es algo muy laborioso y manual, busqué cómo poder automatizar el proceso y vi sobre el uso de web scraping, este video me vendrá de maravilla pues podré extraer los precios de cada producto de los sitios web de la competencia, recopilarlos en un Excel y a partir de ahí hacer el análisis de comparación que hacen en la empresa. Eres todo un capo bro!!

  • @DouglasCorner-kt9rh
    @DouglasCorner-kt9rh ปีที่แล้ว +20

    Solo como referencia: Me gusta más hacer scraping con Python, pero hace como 4 meses que Puppeteer me mantiene alejado de Python, es simplemente una maravilla!

  • @Autoscraping
    @Autoscraping 11 หลายเดือนก่อน

    Asombroso video que nos ha brindado una base sólida para nuestros recién llegados. ¡Gracias por compartirlo de corazón!

  • @antoniopalma8116
    @antoniopalma8116 ปีที่แล้ว +1

    ¡Gracias!

    • @FaztCode
      @FaztCode  ปีที่แล้ว

      Gracias a ti Antonio por el apoyo :)

  • @Fermx95
    @Fermx95 ปีที่แล้ว

    acabo de buscar esto justo hace 2 días y sacas un video, parece que lees mentes

  • @jesuscuadro228
    @jesuscuadro228 ปีที่แล้ว

    Muchas gracias por el contenido, tengo que hacer un web scraping para la empresa en la que estoy haciendo mis pasantias y esto me salva la vida.

  • @oh-vito
    @oh-vito 7 หลายเดือนก่อน

    Excelente herramienta para analisis de contenido web. La instruccion de cierre del navegador es necesaria colocarla porque se podria evitar para mantener la ventana del navegador abierta y evitar las configuraciones como slowMo:x en el metodo launch.

  • @xerot2010
    @xerot2010 ปีที่แล้ว +2

    Exelente video, tengo ganas de hacer un proyecto con algo de scraping, muy buena intro a esperar el cursito no mas!

  • @xavicode3436
    @xavicode3436 ปีที่แล้ว

    no voy a poder ver el video ahora mismo pero el me gusta y comentar es una obligación.
    gracias bro

  • @MotinQ
    @MotinQ ปีที่แล้ว +1

    Esta metodología funciona en sitios webs relativamente estáticos, en los dinámicos con suerte funciona una hora, al parecer los sitios webs que no quieren ser "rascados", scraped, sencillamente no te lo permiten. Hay sitios webs que te ofrecen accesos a esos datos dinámicos, claro, pagando no poco.

    • @MotinQ
      @MotinQ ปีที่แล้ว +1

      Ya entendí mejor este asunto, sucede que los sitios suelen cambiar regularmente los nombres de su clases o ID, por ejemplo, así que hay estar actualizándolos permanentemente, luego de actualizar las "clases", sucedía algo extraño, a veces aparecían datos, a veces unos pocos y otras nada, ajustando el parámetro "slowmo" a 10000 se arregló, pero era demasiado lento, para cargar los datos que necesitaba tomaba como 3 minutos, y para entonces estos ya estaban desactualizado, así que averigüe que si al "page.goto" se le añadía a continuación del URL lo siguiente: ", {waitUntil: 'networkidle2'}", anda de maravilla, mucho más rápido. Ahora en total se toma unos 40 segundos, pero me doy cuenta que se puede optimizar más. Seguro mi amigo ChatGPT podrá ayudarme con eso.

  • @danielrondongarcia9905
    @danielrondongarcia9905 11 หลายเดือนก่อน

    Faztástico bro! Gracias nuevamente por compartir tus conocimientos

  • @incognito14x2
    @incognito14x2 9 หลายเดือนก่อน

    muchas gracias fazts esto me ayuda mucho , me ahorra mucho tiempo a no tener que escribir datos a mano

  • @JSilvandino
    @JSilvandino ปีที่แล้ว

    Algo que no sabía, pero que necesitaba saber. Gracias Fazt.

  • @alexbris6969
    @alexbris6969 7 หลายเดือนก่อน

    Gracias Fazt me sirvio mucho y tambien aprendi sobre scraping. Muchas gracias

  • @luisalbertomunoz3643
    @luisalbertomunoz3643 ปีที่แล้ว

    Excelente video hermano, gracias por compartir tus conocimientos me ayudaron bastante para lo que estoy haciendo

  • @matiasroverano8114
    @matiasroverano8114 ปีที่แล้ว

    realmente tu contenido es de calidad, muchas gracias

  • @gianninabryghitebernalnava274
    @gianninabryghitebernalnava274 ปีที่แล้ว

    Que forma de explicar. Nueva suscriptora. Esperando segunda parte

  •  9 หลายเดือนก่อน +1

    Diferencias de hacerlo con selenium?

  • @argendev
    @argendev ปีที่แล้ว

    con playwright, que es prácticamente un fork de microsoft con algunos creadores de puppeter, lo puedes hacer también con TS, Python, Java y C#

  • @garcesstiven2045
    @garcesstiven2045 5 หลายเดือนก่อน

    Excelente video me salvaste las castañas bro.

  • @robertandresramos5033
    @robertandresramos5033 ปีที่แล้ว +7

    Sería bueno un video donde se cree un Cron Job que extraiga datos con pupeeter de una página cada cierto tiempo y los guarde en una base de datos para tener un registro

    • @RoelLealA
      @RoelLealA ปีที่แล้ว

      Se puede si estas ejecutando el script y creas un loop cada X tiempo, no es tan dificil, incluso puedes visualizar la data con charts después de tenerlas en tu base

  • @Alejandrodaniel1818
    @Alejandrodaniel1818 ปีที่แล้ว

    Maravilloso espero la se segunda parte 👀

  • @AlexCera-zm5vg
    @AlexCera-zm5vg ปีที่แล้ว

    Interesante temática, gracias Fazt.
    Saludos ✌

  • @VJFR26
    @VJFR26 9 หลายเดือนก่อน

    Saludos!, gracias por compartir tus conocimientos!!
    Una consulta, como podria hacer para en vez de guardar los datos en un archivo Json, como podria mostrar los datos directamente en un html ?? Gracias de antemano

  • @isroellitvack8048
    @isroellitvack8048 ปีที่แล้ว

    @fazt ídolo Genio totallll !!!!

  • @javaboy6581
    @javaboy6581 ปีที่แล้ว

    Buenisimo, te falta el acceso a la zona network del navegador para ser un curso top

  • @javiersivira9317
    @javiersivira9317 ปีที่แล้ว

    Excelente, te ganaste un suscriptor.

  • @mis2michis726
    @mis2michis726 8 หลายเดือนก่อน

    Super interesante! Una vez intente usar Puppeter y da muchos porblemas al intentar deployar en muchos hosting. ¿Pudieras hacer un video en donde deployas alguna aplicacion como esta?

  • @ivanbardon6214
    @ivanbardon6214 ปีที่แล้ว

    Muy buen video🎉🎉, von ganas de mas pupeteer

  • @felipecabellomorales
    @felipecabellomorales ปีที่แล้ว

    gracias fazt, espero ese curso !

  • @Im_JVallejo
    @Im_JVallejo ปีที่แล้ว

    Sin duda uno de los besto devs

  • @carloslinking
    @carloslinking 5 หลายเดือนก่อน

    tengo una duda no se si me podrias ayudar, automatizando un proceso con puppeteer , despues de clickear un boton sale un pop up con dos opciones aceptar y cancelar, hay forma de darle click en algun boton desde puppeter?
    tengo el problema que cuando sale el pop up la consola se bloquea ( pongo comandos y al dar enter no pasa nada) hasta que le de click en aceptar / cancelar o cierre e pop up manual ya se ejecutan los comandos que puse , de ante mano gracias

  • @intercambioradial
    @intercambioradial 8 หลายเดือนก่อน

    tienes algun video para hacer scraping de un sitio web para guardar imagenes

  • @htnt3
    @htnt3 ปีที่แล้ว +1

    buen video, mejor que el resto

  • @_salo_0125
    @_salo_0125 4 หลายเดือนก่อน

    Hola, hay alguna manera para que funcione alojado en vercel?

  • @joseluisgutierrez1317
    @joseluisgutierrez1317 ปีที่แล้ว

    Súper todo, puedes crear un video para publicar un proyecto de Puppeteer a Railway o Render ? saludos..!

  • @josnnypineyro5173
    @josnnypineyro5173 ปีที่แล้ว

    pregunta hay alguna manera de bloquear las ventanas emergentes, en python podia hacerlo pero en la doc no encuentro nada claro sobre eso

  • @oswaldochuquipomafermin7090
    @oswaldochuquipomafermin7090 ปีที่แล้ว

    tengo una duda que pasa si quiero subir a un servidor ubuntu server?

  • @stevenson5357
    @stevenson5357 ปีที่แล้ว

    OMG! esto va ser epico causas

  • @gustavo-seedcode
    @gustavo-seedcode ปีที่แล้ว

    Sos un grande estimado QQ

  • @nanamochi06
    @nanamochi06 ปีที่แล้ว

    gracias por el video, super util!!

  • @urielmyak
    @urielmyak ปีที่แล้ว +2

    Gran video como siempre Fazt, compartiendo conocimiento con la comunidad. Por cierto, pdorías crear un tutorial de celery con django rest framework por favor???

  • @marcosignacio7548
    @marcosignacio7548 ปีที่แล้ว

    m ayudaste mucho y quisiera saber como puedo hacer que el script funcione desde una página y la información que se obtenga se muestre en la misma

  •  9 หลายเดือนก่อน

    Y en caso de que exista un reCapchat de Google, como se resuelve?

  • @danielbarandica758
    @danielbarandica758 ปีที่แล้ว

    Sabes por que al correr el codigo no se me abre la pagina web? solo corre todo el codigo sin error, pero no me muestra lo que esta haciendo en tiempo real.

  • @Deus-lo-Vuilt
    @Deus-lo-Vuilt ปีที่แล้ว

    Gracias Fazt , buen video !

  • @maclaren33
    @maclaren33 ปีที่แล้ว

    La próxima un ejemplo cuandi aparecen rompecabezas excelente video

  • @liam32732924
    @liam32732924 ปีที่แล้ว

    hola que plugin tenes para ver los procesos de la pc en VS

  • @senpaisama3853
    @senpaisama3853 ปีที่แล้ว +1

    Buen video, puedes hacer uno de como subir un proyecto de Puppeteer a railway?

  • @ineaenlinea3646
    @ineaenlinea3646 ปีที่แล้ว +1

    Graicas, por favor enseñanos como conectarlo con google sheets

  • @juanbonadeo1587
    @juanbonadeo1587 ปีที่แล้ว

    muy buen video, una pregunta, adonde harías el deploy de una app que lo único que hace es con node y puppeteer saca reservas en una pagina web?

  • @juancarloslizarraga2573
    @juancarloslizarraga2573 ปีที่แล้ว

    Tambien pueden utilizar un simple fetch y con cheerio :)

  • @dicsonferneyquimbayo489
    @dicsonferneyquimbayo489 ปีที่แล้ว

    Me interesa saber tu configuración para que te salga la data de CPU, MEMORIA RAM en la terminal

    • @FaztCode
      @FaztCode  ปีที่แล้ว

      Mejorando el Powershell de Windows con OhmyPosh, Windows Terminal y NerdFonts
      th-cam.com/video/d9y0l7yY404/w-d-xo.html

  • @yensex
    @yensex ปีที่แล้ว +1

    Pq no haces un ejemplo de sveltekit actualidad con lo más último

  • @manuelmorales4363
    @manuelmorales4363 ปีที่แล้ว

    Fazt cual es color theme de tu anterior video, me gusto mucho y me gustaria tenerlo :D

  • @agustinromero1561
    @agustinromero1561 11 หลายเดือนก่อน

    Pregunta para la comunidad. Como podria hacer que estos datos esten en una api? quiero crear una web y que consuma esos datos scrapeados de la web. Alguno tiene alguna idea? Gracias

  • @SeberyGames
    @SeberyGames ปีที่แล้ว

    ¿Cómo se podría desplegar?, usualmente salen problemas con Puppeteer al momento de desplegar por ejemplo en render o koyeb

  • @Julianete
    @Julianete 5 หลายเดือนก่อน

    muy buen video

  • @opuntopunto5783
    @opuntopunto5783 ปีที่แล้ว

    ¿hay que instlar chrome en el servidor? Gracias

  • @leandrosoto5417
    @leandrosoto5417 8 หลายเดือนก่อน +1

    Lo implementé en mi aplicación con NextJS y funcionó bien en el entorno de desarrollo. Pero al querer subirlo a producción en Vercel, da error 500 y no pude encontrar la solución. Si alguien más paso por el mismo problema, agradezco cualquier ayuda, saludos!

  • @lopez-rober
    @lopez-rober ปีที่แล้ว

    donde aprendes todas estas cosas?

  • @ineaenlinea3646
    @ineaenlinea3646 ปีที่แล้ว

    Gracias, por favor enseñanos como conectarlo con google sheets

  • @dnlsilver
    @dnlsilver ปีที่แล้ว

    Buen video!

  • @javieralvarez9571
    @javieralvarez9571 ปีที่แล้ว

    ¿Por qué no usas PlayWright? Es la versión avanzada de Puppeteer.

  • @gerdebur
    @gerdebur ปีที่แล้ว

    Excelente contenido como siempre.. vas a hacer algo con WhatsApp?? Un bot?

  • @Holri
    @Holri ปีที่แล้ว

    Master 😗

  • @c.emmanuelzuniga9435
    @c.emmanuelzuniga9435 ปีที่แล้ว

    Excelente tutorial.

  • @rodrigoyarleque4034
    @rodrigoyarleque4034 ปีที่แล้ว

    puedes hacer uno con python , porfa

  • @nataliamgamer4106
    @nataliamgamer4106 ปีที่แล้ว

    El problema de puppetear es hacer deploy se vuelve bastante complejo

  • @soran2290
    @soran2290 ปีที่แล้ว +12

    Ahora se usa playwright hasta los desarrolladores abandonaron puppetear para usar playwright

    • @dylanstevensuarezcruz5848
      @dylanstevensuarezcruz5848 ปีที่แล้ว +2

      Porque?

    • @argenisguerra878
      @argenisguerra878 ปีที่แล้ว +1

      Por que?

    • @marvinzote
      @marvinzote ปีที่แล้ว

      ​@@argenisguerra878porque a playwright lo auspicia Microsoft

    • @marvinzote
      @marvinzote ปีที่แล้ว

      ​@@dylanstevensuarezcruz5848porque playwright lo auspicia Microsoft

    • @brandon400
      @brandon400 ปีที่แล้ว +1

      por qué

  • @emeaerece0
    @emeaerece0 ปีที่แล้ว

    Intente hacer un scrapper a una tienda, pero era una pagina con react, la cual utilizaba un patron de lazy loading, para obtener la data debia esperar qur cargue la pagina... sumado a la cantidad de paginas demoraba un monton. Hay algun patron para acelerar la obtencion de info en ese escenario??

    • @fertakusM
      @fertakusM ปีที่แล้ว +1

      hola, pero cuanto es "demoraba un montón"? que problema hay? tarde lo que tarde, aunque tarde 1 mañana entera, pillas los datos y lo guardas en tu servidor y ya los tienes al instante para futuras peticiones. no? Luego que necesitas, actualizarlos cada semana? o hay algo que no entiendo? un saludo!

    • @bautistalonardi2930
      @bautistalonardi2930 ปีที่แล้ว

      hola!! como pudiste resolver lo de lazy loading? necesito unas imagenes y se me esta complicando obtenerlas. muchas gracias

    • @emeaerece0
      @emeaerece0 ปีที่แล้ว

      @@fertakusM pasa que estaba tratanto de obtener datos actualizados, en lo posible de varias paginas y todos los dias, ya que esos datos pueden variar... por ejemplo precios.
      Como son distintas fuentes, no hay claridad de cuando cambian.
      Por lo mismo la pregunta es para optimizar la obtencion de los datos.

    • @emeaerece0
      @emeaerece0 ปีที่แล้ว

      @@bautistalonardi2930 si con resolverlo te refieres a solo obtener los datos, independiente del tiempo que demora.
      Debes "esperar" que cargue la pagina completa, al menos donde se encuentran los datos, por ejemplo en mi caso fue scrollear la pagina de forma pausada (milisegundos) de esa manera fue cargando poco a poco.

    • @bautistalonardi2930
      @bautistalonardi2930 ปีที่แล้ว

      @@emeaerece0 gracias, si, necesito esperar que cargue la imagen de las noticias y asi sacarla. con cheerio no pude, estoy probando con puppeteer. con async y await lo hiciste?

  • @OsirisRD
    @OsirisRD 10 หลายเดือนก่อน

    Miy buen video, pero muy mal profesor que no termina el curso, como este he visto muchos que dejas a medias, lo que no entiendo por que si tiene buen view y buenos comentarios 💁🏽‍♂️

    • @FaztCode
      @FaztCode  10 หลายเดือนก่อน +2

      Es que este no es un curso amig, solo es un tutorial, creo que algunos buenos que puedes encontrar es en udemy

    • @OsirisRD
      @OsirisRD 10 หลายเดือนก่อน

      @@FaztCode en algun momento del video dices, que vas a seguir con el tutorial o el curso pero solo hiciste uno y no esta de mas que hablas un tutorial pero estaria bien un poco mas profundo 🥲

  • @maximolive
    @maximolive ปีที่แล้ว