Cheerio | Introducción al Web Scraping con Nodejs, Javascript, y Async/await

Поделиться
HTML-код
  • Опубликовано: 15 окт 2024
  • Este video es una Introducción práctica al Web Scraping a traves de Nodejs usando Cheerio.js, request-promise, async/await y otros conceptos de Javascript.
    CÓDIGO DEL EJEMPLO PRÁCTICO
    gist.github.co...
    CURSO DE NODEJS
    • Nodejs Curso Desde Cer...
    CURSO DE MONGODB
    • MongoDB Curso, Introdu...
    TYPESCRIPT EJEMPLOS
    • Typescript REST API co...
    CURSO DE GIT
    • Git y Github | Curso P...
    VISUAL STUDIO CODE
    • Visual Studio Code, Ed...
    VISITA MI SITIO WEB PARA MAS CURSOS Y CONTENIDO
    www.faztweb.com
    blog.faztweb.com
    FAZT - RUclips:
    / fazttech
    TWITTER
    / fazttech
    INSTAGRAM
    / fazttech
    FACEBOOK
    / fazttech
    #cheerio #nodejs #javascript

Комментарии • 88

  • @carlospacheco5875
    @carlospacheco5875 Год назад

    Genial, ey cuando subes una con Playwright js. Seria genial!!

  • @jhondequesadafernandez8128
    @jhondequesadafernandez8128 5 лет назад +10

    Eres un crack fazt, gracias por todos tu aportes es muy util. Pudieras hacer un carrito de compra con Node JS y Angular por favooor

  • @franostuven
    @franostuven Год назад

    Excelente video y clarisimo como siempre!!! cada vez aprendo mas cosas!!! ya viendo tus videos aprendi api rest y ahora scraping !! muy bueno!!! felicitaciones y segui haciendo estos videos!!! gracias.

  • @juanisidorogarcia1699
    @juanisidorogarcia1699 2 года назад

    Buaf! buenisimo! Cómo puede ser que ando todos los días viendo tus videos desde que encontré tu canal y no había visto este! jejejej. Buenísimo!!! ME ENCANTA!
    Lo único que te ha faltado, es hablar sobre eventos de tiempo en JS, que des tu opinión, sobre cual sería la mejor opción, para repetir estas funciones cad aX tiempo... Nada mas terminar el video, he dado una ojeada... a ver que usar... Valdría el uso de la dependencia de "node-cron" o algún otro??
    La verdad... me encanta esto! jajajaj. MIL GRACIAS POR TODO TU TRABAJO Y CONTENIDO!! ^^

  • @4bzu
    @4bzu 5 лет назад +5

    demasiado tarde para leny
    necesitaba esto hace 2 semanas jjajaja igualmente gran video

  • @JorgeGuillenOfficial
    @JorgeGuillenOfficial 5 лет назад +16

    un vídeo de Puppeteer... 👏👏👏👏👏

  • @danielvnzla6278
    @danielvnzla6278 5 лет назад +7

    Fazt puedes hacer un tutorial sobre el Framework CSS - Materialize

  • @SoyKevin32
    @SoyKevin32 4 года назад

    como lo puedo hacer desde react? es que hago los pasos tal cual del video y me sale el console.log en blanco y me salta un error de los corse algo asi

  • @jaredgradis6656
    @jaredgradis6656 2 года назад

    2022 funcionando perfecto. Gracias bro.

  • @GustavAgar
    @GustavAgar 3 года назад +4

    para hacer scraping que es mejor cheerio o puppeteer? y cual serian las diferencias?

    • @salvadorcaceres9791
      @salvadorcaceres9791 2 года назад

      Cheerio 'jala' el código HTML de un sitio web, en cambio Puppeteer corre una instancia de Chrominium en segundo plano desde el cual obtiene todo el contenido de la página en tiempo real incluyendo la carga de scripts y datos asíncronos, dependiendo de tu caso si quieres obtener datos de un sitio web simple como vendría a ser Wikipedia lo ideal es usar Cheerio, en cambio si queremos obtener datos de un sitio complejo que carga datos después de un tiempo al iniciar usamos Puppeteer.

  • @jakahst
    @jakahst 2 года назад

    ¿Pdrías hacer un tutorial para sacar datos de la página de libros de Cheerio?

  • @julianbaccin
    @julianbaccin 4 года назад

    Fazt no se si vas a ver este comentario pero me surgió una duda.
    const cheerio = require('cheerio')
    const $ = cheerio.load('Hello world')
    $("")
    $.html()
    cheerio.load: devuelve un objeto no?
    y si en $ hay un objeto, como es posible usar la sintaxis $(): esta sintaxis no seria si $ fuera una función?

  • @gonzalodutrasilva
    @gonzalodutrasilva 3 года назад +1

    Muy muy bueno el vídeo !! Super explicado . Quiero aplicar esto mismo en un sistema viejo, pero tengo un problema antes del ingreso al código tengo un login ! Cómo puedo enviar datos para que valide mis credenciales ? Gracias 😁

    •  2 года назад

      Yo tengo el mismo tema, un sitio con login

  • @chackycrypto
    @chackycrypto 4 года назад +3

    Fazt antes que nada, excelente tutorial!!! tengo una consulta, ¿y si la web que quiero hacer scrapping tiene usuario y contraseña? es decir está protegida con usuario y contraseña. Gracias!

    • @CodigoDev
      @CodigoDev 4 года назад

      Puedes usar la librería *Puppeteer* para ello.

  • @edwinmendez2717
    @edwinmendez2717 4 года назад +1

    A partir del 11 de febrero de 2020, request está en desuso. No se esperan nuevos cambios. De hecho, ninguno ha aterrizado por algún tiempo. Este paquete también está en desuso porque depende de request. :( Alguna otra recomendación ?

  • @gabrielborges8854
    @gabrielborges8854 4 года назад

    Esto es justo lo que andaba buscando por mucho tiempo, gracias fazt

  • @anonymushadow282
    @anonymushadow282 2 года назад

    es legal si utilizo esto para analisis de competencias? como decir obtener los meta tags de una pagina, colores, etc u obtener de una red social los me gusta, interacciones, vistas, etc?

  • @Atuchon
    @Atuchon 3 года назад

    fazt, genial el video. Consulta, estoy tratando de trabajar con una pagina que al atacarla desde la api me reconoce el ingreso como de un navegador no soportado. por lo tanto no puedo acceder a su BODY. Como podre solucionarlo??

  • @AlvaroWhite
    @AlvaroWhite 5 лет назад

    Dos preguntas broth. Es legal? No se node. Y con php con js no se podria? Gracias men. Justo estaba buscando un video sobre esto y bumm ahí me llegó la notificación.

  • @1millonario_exitoso10
    @1millonario_exitoso10 5 лет назад +1

    Increíble este ejemplo. Que más te digo me gusto bastante. Esto no se podrá hacer con python. Con imágenes y productos?

    • @recodigo
      @recodigo 4 года назад

      Si se puede hacer scraping con python pero ocupas otra librería

    • @mariomachuca3161
      @mariomachuca3161 4 года назад

      Si con selenium

  • @yoyo-hs6dj
    @yoyo-hs6dj 2 года назад

    request esta deprecated, y tira algunos fallos al instalarla, se puede seguir usando aunque este obsoleta? es que necesito seguirte en todo para ir aprendiendo si me voy a otra libreria ya seria un problema....

  • @pabloramirez4358
    @pabloramirez4358 5 лет назад +2

    Con puppeteer puedes hacer inyección js y interceptar las comunicaciones realizadas por WS 😅

    • @marcio7656
      @marcio7656 2 года назад

      Saludos, probe el metodo de Fazt y efectivamente es posible hacer Web Scraping a paginas web tradicionales, pero no es posible hacerlo a paginas como RUclips, ni mucho menos a los chats. El metodo que enseñas aplicandolo a RUclips no devuelve el html de este sitio o al menos no lo devuelve completo, porque no es posible encontrar determinadaas elementos o clases de este sitiio. Tienes alguna solución para enmendar ese problema para hacer Scraping a sitios como RUclips? De antemano gracias

  • @juancamiloq1
    @juancamiloq1 5 лет назад +2

    Excelente canal Fazt. No me pierdo ningún vídeo. que cursos tienes en udemy? Saludos desde Medellín

  • @Oxikendo
    @Oxikendo 3 года назад

    7:31 desde aca dice code: 'MODULE_NOT_FOUND',
    requireStack: [
    'C:\\Users\\Richard\\source\
    epos\\Js\\webscrapy\
    ode_modules\
    equest-promise\\lib\
    p.js',
    'C:\\Users\\Richard\\source\
    epos\\Js\\webscrapy\\index.js'
    ]

  • @marcio7656
    @marcio7656 2 года назад +1

    Saludos maestro Fazt, probe tu metodo y efectivamente es posible hacer Web Scraping a paginas web tradicionales, pero no es posible hacerlo a paginas como RUclips, ni mucho menos a los chats. El metodo que enseñas aplicandolo a RUclips no devuelve el html de este sitio o al menos no lo devuelve completo, porque no es posible encontrar determinadaas elementos o clases de este sitiio. Tienes alguna solución para enmendar ese problema para hacer Scraping a sitios como RUclips? De antemano gracias

    • @salvadorcaceres9791
      @salvadorcaceres9791 2 года назад +1

      Supongo que en tu caso mejor vendría usar Puppeteer, esa librería puede hacer scrapping en sitios web algo más complejos en donde puedes manejar inputs, tiempos, eventos y demás, Cheerio no tiene soporte para sitios SPA o construídos por frameworks como Vue o React.

  • @cesar0032
    @cesar0032 5 лет назад +1

    Excelente video, ya lo he puesto aprueba, solo tengo un problema, cuando creo un paquete de NPM con mi scraping, y lo utilizo, tengo problemas con el CORS, alguien sabe o tiene algún consejo para saltarse el CORS :/?

  • @JoseAntonioSaborido
    @JoseAntonioSaborido 5 лет назад +1

    Excelente tutorial. ¿Se podría hacer algo similar para un documento de word docx o un pdf?

  • @paputec
    @paputec 2 года назад

    Excelente video eres un crack Fazt

  • @TheJaviercrafter
    @TheJaviercrafter 3 года назад +3

    Por favor, un video de Puppeteer
    Sobre como detercar cosas que vayan saliendo, por ejemplo mensajes de Whatsapp o Telegram

  • @mariomachuca3161
    @mariomachuca3161 4 года назад

    Genial tutorial, ahora esperaremos uno con puppeter !

  • @christianumbrellacorp9116
    @christianumbrellacorp9116 5 лет назад +6

    Excelente como siempre. Tendrá cursos en udemy. De ser asi valdría la pena verlos. Saludos.

    • @rsvmrubovic
      @rsvmrubovic 5 лет назад +3

      Aeeee.... Eu também apoio um curso na udemy, eu sou brasileiro e consigo aprender muito com o fazt.

  • @codelife3387
    @codelife3387 4 года назад

    Fazt ayuda por favor, como hago scraping a una pagina de peliculas para obtener las imagenes. Al seleccionar la imagen y su atributo src se obtiene undefined porque al parecer la imagenes se cargan con lazy loading eso me dijeron. Por favor espero tu respuesta , muchas gracias!!

  • @KingAndrewYT
    @KingAndrewYT 2 года назад

    intento todo al pie de la letra y cuando le doy "node index.js" no sucede nada

    • @FaztCode
      @FaztCode  2 года назад

      ¿estas seguro que tienes nodejs instalado?

  • @yolpad9694
    @yolpad9694 5 лет назад +1

    hola broth, felicitaciones Tu video esta excelente, te queria pregunta , por que cuando ejecuto en la terminal >node index.js en vez de extraerme el HTML de la pagina solo me produce un salto de linea, mas no me muestra el HTML, sera por mi internet estar muy lento.

  • @EnBuenChileno24
    @EnBuenChileno24 3 года назад

    Hola ¿Se puede escanear contenido dinámico con cheerio? o tengo que pasarme a puppeter? Gracias!!!

  • @marczlong9382
    @marczlong9382 3 года назад

    que manía de usar la consola integrada! Sería muchísimo más claro usar la normal

  • @Modozenmusic
    @Modozenmusic 5 лет назад

    justo lo que queria aprender. gracias fatz

  • @KevinAdb
    @KevinAdb 2 года назад

    Alguna otra forma de instalar las dependencias del minuto 4:21, no me deja de esta forma que lo haces. se te agradecera

  • @jonathan.d.d941
    @jonathan.d.d941 3 года назад

    Hola buenos dias, es posible crear una api atraves del scraping?

  • @franostuven
    @franostuven Год назад

    Te hago otra consulta, quiero recorrer la pag. y hacer una lista ya que guardo en esa lista los enlaces a otras paginas, luego quiero recorrer esa lista y por cada enlace ir a la otra pag y extraer info, guardarla en un array junto con el enlace correspondiente y seguir con el siguiente elemneto de la lista hasta el final. Pero el for lo hace mas rapido que el llamado al await request() como hago que espere a que el request responda ?
    muchas gracias

  • @alejandroguerrero140
    @alejandroguerrero140 4 года назад

    Hola. Soy principiante de 0 pero si quiero y necesito hacer una app que requiere web scraping. Encontré tu video super informativo y en español sobre todo. Solo que cuando quiero iniciar nmp init -y la terminal me tira un error:
    + FullyQualifiedError: CommandNotFoundException
    El termino npm no se reconoce como nombre de un cdmlet, funcion, archivo de script o programa ejecutable...
    Que puedo o debo hacer? Gracias!

    • @recodigo
      @recodigo 4 года назад

      Te tira ese error porque no has instalado el npm

  • @lolololol825
    @lolololol825 4 года назад +1

    Sabes alguna manera de hacer scrapping de single page application con solo javascript, sin headless chrome o puppeteer? Apreciaria mucho incluso si és solo una idea

    • @CesarICAO
      @CesarICAO 2 года назад

      con cheerio el mismo lo dice y see especifica en la documentacion de cheerio

    • @marcio7656
      @marcio7656 2 года назад

      @@CesarICAO Saludos, probe el metodo de Fazt y efectivamente es posible hacer Web Scraping a paginas web tradicionales, pero no es posible hacerlo a paginas como RUclips, ni mucho menos a los chats. El metodo que enseñas aplicandolo a RUclips no devuelve el html de este sitio o al menos no lo devuelve completo, porque no es posible encontrar determinadaas elementos o clases de este sitiio. Tienes alguna solución para enmendar ese problema para hacer Scraping a sitios como RUclips? De antemano gracias

  • @josetuz
    @josetuz 5 лет назад

    Muy bueno y muy útil. Gracias!

  • @Elchimbotanito69
    @Elchimbotanito69 4 года назад

    Eres un verdadero capo! Gracias

  • @lopez9luna9victor
    @lopez9luna9victor 2 года назад

    Hola. ¿con que instruccion puedo abrir una pagina web?

    • @salvadorcaceres9791
      @salvadorcaceres9791 2 года назад

      Debes crear una instancia referenciando al sitio web con el método cheerio.load(), la referencia puede realizarse tanto con response como con Axios.

  • @RoblugDev
    @RoblugDev Год назад

    tienes servidor de discor o un lugar donde pueda pedir ayuda cuando no se algo?

    • @FaztCode
      @FaztCode  Год назад

      si claro discord.gg/JpnY3YqzCN

  • @nicolassalazar3464
    @nicolassalazar3464 3 года назад

    Bros como estan ? necesito obtener el css haciendo web scraping, me podrian ayudar ?

  • @Djoako22
    @Djoako22 2 года назад

    Como lo puedo usar en React js?

  • @Yamikawa
    @Yamikawa 3 года назад

    ojala y puedan ayudarme con esta duda: Me gustaria poder hacer scraping web a una pagina que usa un framework, no estoy seguro de si es react o vue, pero genera hmlt a partir de un div con la clase app... como se haria en ese caso, ya que hacerlo como muestra en el tutorial solo trae el div sin nada adentro

    • @LzDanny-cl
      @LzDanny-cl 3 года назад +2

      Por favor, si sabes cómo resolverlo informame. Tengo el mismo problema y llevo tiempo buscando como resolver.

    • @marcio7656
      @marcio7656 2 года назад

      Alguien encontro solucion a ese problema?

  • @adriansangon9028
    @adriansangon9028 5 лет назад +1

    Gracias Fazt!!!!!

  • @PraexorVS
    @PraexorVS 4 года назад

    Buenísimo, gracias 🙏

  • @Modozenmusic
    @Modozenmusic 5 лет назад

    Hola amigos me pueden ayudar? quien me da algunos tips sobre como podria agarrar esa informacion extraida y plublicarlas en un blog creado por mi en nodejs?

  • @Kalostro69
    @Kalostro69 5 лет назад

    Tengo como 4 meses queriendo terminar el curso de node

  • @pabloarrua8288
    @pabloarrua8288 5 лет назад

    podrias hacer un video de como hacer que un cliente te envie un email mediante un formulario con nodejs?

    • @FaztCode
      @FaztCode  5 лет назад +1

      Ese ejemplo estara para esta semana :)

    • @pabloarrua8288
      @pabloarrua8288 5 лет назад

      @@FaztCode Lo esperare con ansias, ya que estoy desarrollando una pagina web y estoy atascado hace 3 semanas con ese tema, por un error de certificado que no estoy pudiendo solucionar. Muchas gracias Fazt eres grande de verdad

    • @jeangonzalo3283
      @jeangonzalo3283 5 лет назад

      zelda ?

  • @rodrigogarciatrejo8084
    @rodrigogarciatrejo8084 3 года назад

    fazt no conoce el boton terminal

  • @davidtovar1641
    @davidtovar1641 4 года назад

    y si el paquete request ya esta obsoleta, que procede ahí?

    • @FaztCode
      @FaztCode  4 года назад +3

      Puedes cambiarlo por axios

  • @eddiekaka1452
    @eddiekaka1452 5 лет назад

    Excelente Fazt

  • @jeremyico7581
    @jeremyico7581 Год назад

    Parre interesante 37:40

  • @diegocamilopenaramirez6101
    @diegocamilopenaramirez6101 4 года назад

    Muchas gracias

  • @jose-sf7zu
    @jose-sf7zu 4 года назад

    Hola muyy buienas pues nada yo ando peleandome con el codigo porque me da fallos teniendo el código asi tal cual:
    const cheerio = require('cheerio');
    const fs = require('fs');
    const request = require('request');
    async function init() {
    const $ = await request({
    uri: 'quotes.toscrape.com/',
    transform: body => cheerio.load(body)
    });
    //console.log($);
    const websiteTitle = $('title');
    console.log(websiteTitle);
    }
    init();
    error:
    PS I:\Desarrollo_de_aplicaciones\Javascript\webscrap> node index.js
    (node:17220) UnhandledPromiseRejectionWarning: TypeError: $ is not a function
    at init (I:\Desarrollo_de_aplicaciones\Javascript\webscrap\index.js:27:26)
    (node:17220) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1)
    (node:17220) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

    • @alexaixo1456
      @alexaixo1456 3 года назад

      Me pasa lo mismo bro, avísame lo pudiste solucionar

  • @rodrigonzlez
    @rodrigonzlez 4 года назад

    Un video de Goutte

  • @alexaixo1456
    @alexaixo1456 3 года назад

    UnhandledPromiseRejectionWarning: TypeError: $ is not a function
    Espero que alguien lea esto :/

  • @rorroartchanel
    @rorroartchanel 5 лет назад

    Te amo

  • @gladysperez8762
    @gladysperez8762 3 года назад

    Fatz puppeteer porfa:)

  • @na81cho
    @na81cho 3 года назад

    Como se puede pasar el dato extraído a un html , ?.