paint-brush
Mejore su proyecto de scrapbooking con Puppeteer Extra por@brightdata
303 lecturas
303 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 , 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?

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 , este proyecto impulsado por la comunidad tiene cientos de miles de descargas semanales y más de 6000 estrellas en GitHub 📈.


Consulte el 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:
  • : para que sea más difícil detectar a Puppeteer como un bot.
  • : para resolver reCAPTCHAs y hCaptchas automáticamente.
  • : para reducir el ancho de banda y los tiempos de carga mediante la aplicación de un bloqueador rápido y eficiente para anuncios y rastreadores.
  • : para hacer posible la depuración del navegador Puppeteer desde cualquier lugar.
  • : para hacer que la depuración y la exploración de Puppeteer sean más fáciles y agradables con un REPL interactivo.
  • : para bloquear programáticamente recursos como imágenes, archivos multimedia, hojas de estilo CSS y más mientras se cargan páginas.
  • : para permitir que el contenido de Adobe Flash se ejecute en todos los sitios sin interacción del usuario.
  • : para anonimizar el encabezado User-Agent en todas las páginas, con soporte para reemplazo dinámico.
  • : para establecer preferencias de usuario personalizadas de Chrome/Chromium.
Además de eso, se integra con los siguientes complementos de la comunidad:
  • : para minimizar y maximizar la ventana del navegador Puppeteer en tiempo real.
  • : para ver e interactuar de forma remota con sesiones de puppeteer a través de la API de screencast de Chromium.

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

Sin duda, Puppeteer es una de las mejores . 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 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

, 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 .


⚙️ 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("//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 .


¡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 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 , 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 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 . Ú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! 🌐
바카라사이트 바카라사이트 온라인바카라