Тёмный

Web Scraping con Nodejs y Puppeteer 

Fazt Code
Подписаться 262 тыс.
Просмотров 37 тыс.
50% 1

Puppeteer es una biblioteca de JavaScript que nos brinda un conjunto de herramientas de alto nivel para controlar navegadores Chrome o Chromium a través de la API de DevTools. Lo que quiere decir en la practica que puedes controlar tu navegador usando código de Javascript, junto con la biblioteca Puppeteer y Nodejs.
En este video, aprenderás a usar esta biblioteca y entender como usarla de forma practica.
Tutorial Escrito:
www.fazt.dev/c...
Codigo del ejemplo:
gist.github.co...
⭐ Cursos Recomendados
Curso de Nodejs ⮕ fazt.dev/nodejs
Curso de React ⮕ • Curso de Reactjs desde...
Curso de Javascript para React ⮕ • Javascript para Aprend...
🗣 Redes Sociales
⮕ Twitter / fazttech
🎒 Servicios Recomendados
DigitalOcean ⮕ m.do.co/c/8ef2...
Namecheap ⮕ namecheap.pxf....
Ledger ⮕ (Hardware Wallet) bit.ly/3ijsVNW
SiteGround ⮕ bit.ly/31u9ZEk
Cloudinary ⮕ bit.ly/3ohNlJ7
Puedes encontrar la lista de tutoriales de Nestjs en: www.fazt.dev/n...
#nodejs #webscraping #puppeteer

Опубликовано:

 

28 сен 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 100   
11 месяцев назад
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 Год назад
Muy bueno, vi muchísimos videos pero ninguno tan claro como el tuyo. Espero con ansias el curso de Puppetter!
@MegaSpartan1998
@MegaSpartan1998 3 месяца назад
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!!
@seiya_dev
@seiya_dev 8 месяцев назад
Muchas gracias por el contenido, tengo que entregar un trabajo a un cliente y me dijo que aprendiera web scraping para implementarlo. Excelente contenido!
@Autoscraping
@Autoscraping 8 месяцев назад
Asombroso video que nos ha brindado una base sólida para nuestros recién llegados. ¡Gracias por compartirlo de corazón!
@DouglasCorner-kt9rh
@DouglasCorner-kt9rh Год назад
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!
@xerot2010
@xerot2010 Год назад
Exelente video, tengo ganas de hacer un proyecto con algo de scraping, muy buena intro a esperar el cursito no mas!
@JSilvandino
@JSilvandino Год назад
Algo que no sabía, pero que necesitaba saber. Gracias Fazt.
@danielrondongarcia9905
@danielrondongarcia9905 7 месяцев назад
Faztástico bro! Gracias nuevamente por compartir tus conocimientos
@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#
@alexbris6969
@alexbris6969 4 месяца назад
Gracias Fazt me sirvio mucho y tambien aprendi sobre scraping. Muchas gracias
@intercambioradial
@intercambioradial 5 месяцев назад
tienes algun video para hacer scraping de un sitio web para guardar imagenes
@luisalbertomunoz3643
@luisalbertomunoz3643 9 месяцев назад
Excelente video hermano, gracias por compartir tus conocimientos me ayudaron bastante para lo que estoy haciendo
@oswaldochuquipomafermin7090
@oswaldochuquipomafermin7090 11 месяцев назад
tengo una duda que pasa si quiero subir a un servidor ubuntu server?
6 месяцев назад
Y en caso de que exista un reCapchat de Google, como se resuelve?
@javaboy6581
@javaboy6581 Год назад
Buenisimo, te falta el acceso a la zona network del navegador para ser un curso top
@Alejandrodaniel1818
@Alejandrodaniel1818 Год назад
Maravilloso espero la se segunda parte 👀
@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
@INDESCRIPTIBLE.
@INDESCRIPTIBLE. 6 месяцев назад
🎯 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
@ivanbardon6214
@ivanbardon6214 Год назад
Muy buen video🎉🎉, von ganas de mas pupeteer
@htnt3
@htnt3 Год назад
buen video, mejor que el resto
@felipecabellomorales
@felipecabellomorales Год назад
gracias fazt, espero ese curso !
@nanamochi06
@nanamochi06 9 месяцев назад
gracias por el video, super util!!
@stevenson5357
@stevenson5357 Год назад
OMG! esto va ser epico causas
@gustavo-seedcode
@gustavo-seedcode Год назад
Sos un grande estimado QQ
@antoniopalma8116
@antoniopalma8116 Год назад
¡Gracias!
@FaztCode
@FaztCode Год назад
Gracias a ti Antonio por el apoyo :)
@dnlsilver
@dnlsilver Год назад
Buen video!
@gerdebur
@gerdebur Год назад
Excelente contenido como siempre.. vas a hacer algo con WhatsApp?? Un bot?
@OsirisRD
@OsirisRD 7 месяцев назад
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 7 месяцев назад
Es que este no es un curso amig, solo es un tutorial, creo que algunos buenos que puedes encontrar es en udemy
@OsirisRD
@OsirisRD 7 месяцев назад
@@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 Год назад
@robertandresramos5033
@robertandresramos5033 Год назад
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
@jorgejara6854
@jorgejara6854 Год назад
decirte "Te Amo"...será mucho? jaja gracias Fabi, por compartir esa materia gris, te sigo desde siempre, QUEREMOS EL CURSO!! jeje abrazo desde Argentina!
@leandrosoto5417
@leandrosoto5417 5 месяцев назад
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!
@JuanLuis_Estrada
@JuanLuis_Estrada 4 месяца назад
Me pasa lo mismo
@soran2290
@soran2290 Год назад
Ahora se usa playwright hasta los desarrolladores abandonaron puppetear para usar playwright
@dylanstevensuarezcruz5848
@dylanstevensuarezcruz5848 Год назад
Porque?
@argenisguerra878
@argenisguerra878 Год назад
Por que?
@marvinzote
@marvinzote 11 месяцев назад
​@@argenisguerra878porque a playwright lo auspicia Microsoft
@marvinzote
@marvinzote 11 месяцев назад
​@@dylanstevensuarezcruz5848porque playwright lo auspicia Microsoft
@brandon400
@brandon400 11 месяцев назад
por qué
@mis2michis726
@mis2michis726 5 месяцев назад
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?
@davidwebchile
@davidwebchile 16 дней назад
Despues de 3 años viendo tus videos a 0.75, por fin puedo en reproduccion normal, estoy avanzando. Gracias Fazt!
@ineaenlinea3646
@ineaenlinea3646 Год назад
Graicas, por favor enseñanos como conectarlo con google sheets
@VJFR26
@VJFR26 6 месяцев назад
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
@carloslinking
@carloslinking Месяц назад
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
@agustinromero1561
@agustinromero1561 8 месяцев назад
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
@MotinQ
@MotinQ Год назад
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 11 месяцев назад
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.
@_salo_0125
@_salo_0125 Месяц назад
Hola, hay alguna manera para que funcione alojado en vercel?
@garcesstiven2045
@garcesstiven2045 2 месяца назад
Excelente video me salvaste las castañas bro.
6 месяцев назад
Diferencias de hacerlo con selenium?
@yensex
@yensex Год назад
Pq no haces un ejemplo de sveltekit actualidad con lo más último
@senpaisama3853
@senpaisama3853 Год назад
Buen video, puedes hacer uno de como subir un proyecto de Puppeteer a railway?
@Julianete
@Julianete 2 месяца назад
muy buen video
@urielmyak
@urielmyak Год назад
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???
@dicsonferneyquimbayo489
@dicsonferneyquimbayo489 10 месяцев назад
Me interesa saber tu configuración para que te salga la data de CPU, MEMORIA RAM en la terminal
@FaztCode
@FaztCode 10 месяцев назад
Mejorando el Powershell de Windows con OhmyPosh, Windows Terminal y NerdFonts ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-d9y0l7yY404.html
@SeberyGames
@SeberyGames Год назад
¿Cómo se podría desplegar?, usualmente salen problemas con Puppeteer al momento de desplegar por ejemplo en render o koyeb
@oh-vito
@oh-vito 4 месяца назад
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.
@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
@incognito14x2
@incognito14x2 6 месяцев назад
muchas gracias fazts esto me ayuda mucho , me ahorra mucho tiempo a no tener que escribir datos a mano
@joseluisgutierrez1317
@joseluisgutierrez1317 11 месяцев назад
Súper todo, puedes crear un video para publicar un proyecto de Puppeteer a Railway o Render ? saludos..!
@javieralvarez9571
@javieralvarez9571 Год назад
¿Por qué no usas PlayWright? Es la versión avanzada de Puppeteer.
@jesuscuadro228
@jesuscuadro228 11 месяцев назад
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.
@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?
@maclaren33
@maclaren33 Год назад
La próxima un ejemplo cuandi aparecen rompecabezas excelente video
@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.
@xavicode3436
@xavicode3436 Год назад
no voy a poder ver el video ahora mismo pero el me gusta y comentar es una obligación. gracias bro
@nataliamgamer4106
@nataliamgamer4106 Год назад
El problema de puppetear es hacer deploy se vuelve bastante complejo
@opuntopunto5783
@opuntopunto5783 Год назад
¿hay que instlar chrome en el servidor? Gracias
@ineaenlinea3646
@ineaenlinea3646 Год назад
Gracias, por favor enseñanos como conectarlo con google sheets
@javiersivira9317
@javiersivira9317 10 месяцев назад
Excelente, te ganaste un suscriptor.
@matiasroverano8114
@matiasroverano8114 9 месяцев назад
realmente tu contenido es de calidad, muchas gracias
@liam32732924
@liam32732924 Год назад
hola que plugin tenes para ver los procesos de la pc en VS
@Deus-lo-Vuilt
@Deus-lo-Vuilt Год назад
Gracias Fazt , buen video !
@manuelmorales4363
@manuelmorales4363 Год назад
Fazt cual es color theme de tu anterior video, me gusto mucho y me gustaria tenerlo :D
@Fermx95
@Fermx95 Год назад
acabo de buscar esto justo hace 2 días y sacas un video, parece que lees mentes
@rodrigoyarleque4034
@rodrigoyarleque4034 Год назад
puedes hacer uno con python , porfa
@juancarloslizarraga2573
@juancarloslizarraga2573 Год назад
Tambien pueden utilizar un simple fetch y con cheerio :)
@AlexCera-zm5vg
@AlexCera-zm5vg Год назад
Interesante temática, gracias Fazt. Saludos ✌
@lopez-rober
@lopez-rober Год назад
donde aprendes todas estas cosas?
@isroellitvack8048
@isroellitvack8048 Год назад
@fazt ídolo Genio totallll !!!!
@Im_JVallejo
@Im_JVallejo Год назад
Sin duda uno de los besto devs
@gianninabryghitebernalnava274
Que forma de explicar. Nueva suscriptora. Esperando segunda parte
@Holri
@Holri Год назад
Master 😗
@c.emmanuelzuniga9435
@c.emmanuelzuniga9435 Год назад
Excelente tutorial.
@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 Год назад
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?
Далее
Qalpoq - Amakivachcha (hajviy ko'rsatuv)
41:44
Просмотров 240 тыс.
A Guide to Web Scraping with Node.js
9:54
Просмотров 380 тыс.
How to download a pdf with Puppeteer
2:54
Просмотров 3,7 тыс.
CORS - ¿Que es Cors y como solucionarlo?
24:19
Просмотров 37 тыс.
API REST con NODE.js || GUÍA de BUENAS PRÁCTICAS
47:39
WEB SCRAPING 🤘
13:48
Просмотров 21 тыс.
Qalpoq - Amakivachcha (hajviy ko'rsatuv)
41:44
Просмотров 240 тыс.