paint-brush
Mejore su proyecto de scrapbooking con Puppeteer Extrapor@brightdata
438 lecturas
438 lecturas

Mejore su proyecto de scrapbooking con Puppeteer Extra

por Bright Data6m2024/09/04
Read on Terminal Reader

Demasiado Largo; Para Leer

Puppeteer Extra mejora Puppeteer al agregar compatibilidad con complementos para abordar sus limitaciones. Este contenedor liviano presenta complementos para tareas como evadir la detección de bots, resolver CAPTCHAs y bloquear recursos no deseados. A pesar de sus puntos fuertes, los sistemas antibots avanzados aún pueden detectar Puppeteer. Explore los complementos de Puppeteer Extra para mejorar su capacidad de raspado web, pero tenga en cuenta que las defensas sofisticadas contra bots aún pueden presentar desafíos.
featured image - Mejore su proyecto de scrapbooking con Puppeteer Extra
Bright Data HackerNoon profile picture
0-item

Como se destaca en nuestra guía de web scraping con Puppeteer , esta biblioteca de automatización del navegador es un aliado fantástico para extraer datos de sitios de contenido dinámico. Sin embargo, como cualquier otra herramienta, tiene sus defectos. ¡Ahí es donde entra Puppeteer Extra!


En esta guía, le presentaremos puppeteer-extra , una biblioteca que envuelve puppeteer para extenderlo con compatibilidad con complementos. ¡Prepárese para llevar su proyecto de scraping de Puppeteer al siguiente nivel! 🚀

¿Qué es Puppeteer Extra?

Puppeteer Extra es un contenedor liviano para puppeteer que permite la integración de complementos a través de una interfaz limpia. Si bien no fue desarrollado por el equipo detrás de Puppeteer , este proyecto impulsado por la comunidad tiene cientos de miles de descargas semanales y más de 6000 estrellas en GitHub 📈.


Consulte el gráfico de estrellas de GitHub a continuación: está claro que el repositorio puppeteer-extra ha experimentado un aumento constante en popularidad a lo largo de los años: El auge de Puppeteer Extra en GitHub

Los complementos oficialmente compatibles con Puppeteer Extra son:

Además de eso, se integra con los siguientes complementos de la comunidad:

¿Por qué necesitamos una versión extra de Puppeteer?

Sin duda, Puppeteer es una de las mejores bibliotecas de navegadores sin interfaz gráfica para realizar pruebas y extraer información . Pero seamos honestos: tiene sus límites, especialmente cuando se enfrenta a tecnologías antibots como la identificación de navegadores y los CAPTCHA. Lea nuestra guía para aprender a lidiar con la automatización de reCAPTCHA .


Los sitios web equipados con defensas antibots pueden detectar y bloquear fácilmente los scripts de Puppeteer. Si tan solo hubiera una manera de ampliar y personalizar el comportamiento predeterminado de Puppeteer...


…bueno, ¡eso es exactamente de lo que trata Puppeteer Extra!

Puppeteer Extra contra Puppeteer

Puppeteer Extra es como una mejora para Puppeteer, que agrega compatibilidad con complementos para solucionar esos inconvenientes importantes. En lugar de anular o extender todo por ti, envuelve Puppeteer y te permite registrar solo los complementos que necesitas. 🦸

puppeteer-extra : configuración y complementos para el web scraping

Puedes agregar Puppeteer Extra a las dependencias npm de tu proyecto con:

 npm install puppeteer-extra


⚠️ Nota : puppeteer-extra requiere puppeteer para funcionar, así que asegúrese de que ambos paquetes estén instalados en su proyecto.


Luego, debes importar el objeto puppeteer desde puppeteer-extra en lugar de la biblioteca puppeteer :

 const puppeteer = require("puppeteer-extra") // for ESM users: // const { puppeteer } from "puppeteer-extra"

Todo en la API de Puppeteer sigue igual, pero ahora obtienes un poco de magia adicional ✨. El objeto puppeteer ahora expone un método use() para conectar complementos adicionales de Puppeteer.


¡Es hora de sumergirnos en lo que estos complementos pueden hacer y ver cómo mejorarán su juego de raspado web!

complemento extra de titiritero sigiloso

El complemento adicional Puppeteer Stealth , también conocido simplemente como Puppeteer Stealth, incluye un conjunto de configuraciones diseñadas para reducir la detección de bots. Anula las propiedades y configuraciones detectables de Puppeteer que podrían exponerlo como un bot.


Para obtener más detalles, consulta nuestra guía sobre cómo evitar ser bloqueado con Puppeteer Stealth .


⚙️ Instalación :

 npm install puppeteer-extra-plugin-stealth


💡 Uso :

 const StealthPlugin = require("puppeteer-extra-plugin-stealth") // for ESM users: // import StealthPlugin from "puppeteer-extra-plugin-stealth" puppeteer.use(StealthPlugin())

recursos del bloque del complemento extra de puppeteer

Un complemento para evitar que el navegador Puppeteer cargue recursos específicos. Los tipos de recursos admitidos incluyen document , stylesheet , image , media , font , script , texttrack , xhr , fetch , eventsource , websocket , manifest y other .


El bloqueo de recursos se puede configurar tanto global como localmente.


⚙️ Instalación :

 npm install puppeteer-extra-plugin-block-resources


💡 Uso :

 const BlockResourcesPlugin = require("puppeteer-extra-plugin-block-resources") // for ESM users: // import BlockResourcesPlugin from "puppeteer-extra-plugin-block-resources"


Luego puedes configurar los recursos para bloquearlos globalmente en todas las páginas:

 puppeteer.use(BlockResourcesPlugin({ blockedTypes: new Set(["image", "stylesheet"]), }))


De manera similar, puedes seleccionar localmente los recursos que deseas bloquear:

 puppeteer.use(BlockResourcesPlugin() const browser = await puppeteer.launch() const page = await browser.newPage() blockResourcesPlugin.blockedTypes.add("stylesheet") await page.goto("https://www.example.com/", { waitUntil: "domcontentloaded" })

complemento adicional para titiriteros: anonimizar ua

Un complemento para anonimizar el User-Agent establecido por el navegador controlado por Puppeteer. 🎭


Le brinda la posibilidad de eliminar la cadena 'Headless' del agente de usuario de Chrome en modo headless y admite el reemplazo dinámico del agente de usuario a través de una función personalizada. Mírelo en acción en nuestra guía del agente de usuario de Puppeteer .


¡Descubre cuál es el mejor agente de usuario para web scraping!


⚙️ Instalación :

 npm install puppeteer-extra-plugin-anonymize-ua


💡 Uso :

 const AnonymizeUAPlugin = require("puppeteer-extra-plugin-anonymize-ua") // for ESM users: // import AnonymizeUAPlugin from "puppeteer-extra-plugin-anonymize-ua"


A continuación, puede configurar el agente de usuario anónimo:

 puppeteer.use(AnonymizeUAPlugin({ stripHeadless: true, }))


También puedes configurar un agente de usuario dinámico a través de una función personalizada:

 puppeteer.use(AnonymizeUAPlugin({ customFn: (ua) => ua.replace("Chrome", "Chromium")}) }))

Puppeteer Extra no es una panacea

Al igual que con Playwright , no importa cuán elegante y personalizado sea tu guión de Puppeteer, los sistemas anti-bots avanzados pueden detectarte y bloquearte. Pero, ¿cómo es eso posible? 🤔


La documentación puppeteer-extra-stealth-plugin te lo explica con detalle:

Nota: considero que se trata de una competencia amistosa en un juego del gato y el ratón bastante interesante. Si el otro equipo (👋) quiere detectar el cromo sin cabeza, todavía hay formas de hacerlo (al menos noté algunas, que abordaré en futuras actualizaciones).


Probablemente sea imposible evitar todas las formas de detectar cromo sin cabeza, pero debería ser posible hacerlo tan difícil que resulte prohibitivamente costoso o genere demasiados falsos positivos como para que sea factible.


Por lo tanto, si bien Puppeteer Extra puede esquivar la mayoría de las detecciones de bots básicas como Neo en Matrix, no puede evitar Cloudflare . Claro, podrías integrar un proxy en Puppeteer , pero incluso eso podría no ser suficiente.


El problema no es Puppeteer en sí (porque, seamos realistas, ¡Puppeteer es genial! 🤘), sino el navegador que controla. ¿La verdadera solución? Un navegador potente que:

  • Funciona en modo encabezado como un navegador normal para reducir la detección de bots.
  • Escala en la nube para usted, ahorrándole tiempo y costos en la gestión de infraestructura.
  • Ofrece IP rotativas impulsadas por una de las redes de proxy más grandes y confiables del mercado.
  • Maneja automáticamente la resolución de CAPTCHA, la toma de huellas digitales del navegador, la personalización de cookies y encabezados y los reintentos para lograr una eficiencia óptima.
  • Se integra perfectamente con las principales bibliotecas de automatización del navegador como Playwright, Selenium y Puppeteer.


Lo creas o no, esto no es un sueño lejano. Es real y es exactamente lo que el Scraping Browser de Bright Data tiene para ofrecer.

Reflexiones finales

Puppeteer es una de las herramientas de automatización de navegadores más utilizadas en el mundo tecnológico, pero hasta los superhéroes tienen sus límites. La comunidad intervino con puppeteer-extra , un paquete que le otorga a Puppeteer algunas nuevas capacidades realmente geniales a través de complementos personalizados.


Pero aquí está el asunto: si bien estos complementos pueden hacer que tu operación de scraping sea mucho más fuerte, no te convertirán mágicamente en un fantasma 👻. ¡Los sitios con detección avanzada de bots aún podrían bloquearte!


Evite todos los antibots con el Scraping Browser de Bright Data, un navegador en la nube no detectable que se integra perfectamente con Puppeteer . Únase a nuestra misión de hacer de la Web un espacio público para todos, en todas partes, incluso a través de scripts automatizados.


¡Hasta la próxima, seguid explorando Internet con libertad! 🌐