paint-brush
Eleva o teu proxecto de raspado con Puppeteer Extra por@brightdata
298 lecturas

Eleva o teu proxecto de raspado con Puppeteer Extra

por Bright Data6m2024/09/04
Read on Terminal Reader

Demasiado longo; Ler

Puppeteer Extra mellora Puppeteer engadindo compatibilidade con complementos para solucionar as súas limitacións. Este envoltorio lixeiro introduce complementos para tarefas como evitar a detección de bots, resolver CAPTCHA e bloquear recursos non desexados. A pesar dos seus puntos fortes, os sistemas anti-bot avanzados aínda poden detectar Puppeteer. Explora os complementos de Puppeteer Extra para mellorar o teu xogo de rascado web, pero ten en conta que as defensas sofisticadas de bot aínda poden supoñer desafíos.
featured image - Eleva o teu proxecto de raspado con Puppeteer Extra
Bright Data HackerNoon profile picture
0-item
Como se destaca na nosa guía para , esta biblioteca de automatización do navegador é un aliado fantástico para extraer datos de sitios de contido dinámico. Aínda así, como calquera outra ferramenta, ten as súas deficiencias. Aí é onde intervén Puppeteer Extra!


Nesta guía, presentámosche puppeteer-extra , unha biblioteca que envolve puppeteer para amplialo co soporte de complementos. Prepárate para levar o teu proxecto de raspado de titiriteiros ao seguinte nivel! 🚀

Que é Puppeteer Extra?

é un puppeteer lixeiro que permite a integración de complementos a través dunha interface limpa. Aínda que non foi desenvolvido polo equipo detrás , este proxecto impulsado pola comunidade ten centos de miles de descargas semanais e máis de 6.000 estrelas en GitHub 📈.


Consulte o : está claro que o repositorio puppeteer-extra foi un aumento constante en popularidade ao longo dos anos: O ascenso de Puppeteer Extra en GitHub

Os complementos admitidos oficialmente por Puppeteer Extra son:
  • : para dificultar a detección de Puppeteer como bot.
  • : para resolver reCAPTCHA e hCaptcha automaticamente.
  • : para reducir o ancho de banda e os tempos de carga aplicando un bloqueador rápido e eficiente para anuncios e rastreadores.
  • : para facer posible a depuración do navegador Puppeteer desde calquera lugar.
  • : para facer que a depuración e exploración de Puppeteer sexa máis fácil e agradable cunha REPL interactiva.
  • : para bloquear mediante programación recursos como imaxes, ficheiros multimedia, follas de estilo CSS e moito máis mentres se cargan páxinas.
  • : para permitir que o contido de Adobe Flash se execute en todos os sitios sen a interacción do usuario.
  • : para anonimizar a cabeceira User-Agent en todas as páxinas, con soporte para a substitución dinámica.
  • : para configurar preferencias de usuario de Chrome/Chromium personalizadas.
Ademais destes, intégrase cos seguintes complementos da comunidade:
  • : para minimizar e maximizar a xanela do navegador Puppeteer en tempo real.
  • : para ver e interactuar de forma remota con sesións de titiriteiros a través da API de screencast de Chromium.

Por que necesitamos unha versión extra de Puppeteer?

Sen dúbida, Puppeteer é unha das principais . Pero sexamos honestos: ten os seus límites, especialmente cando se enfronta a tecnoloxía anti-bot como a pegada dixital do navegador e os CAPTCHA. Le a nosa guía para saber como xestionar a automatización de reCAPTCHA .


Os sitios web armados con defensas anti-bot poden detectar e bloquear facilmente os scripts de Puppeteer. Se houbese un xeito de ampliar e personalizar o comportamento predeterminado de Puppeteer...


...ben, iso é exactamente o que se trata Puppeteer Extra!

Titiriteiro Extra vs Titiriteiro

Puppeteer Extra é como unha potenciación para Puppeteer, engadindo compatibilidade con complementos para solucionar eses principais inconvenientes. En lugar de anular ou estender todo por ti, envolve Puppeteer e permíteche rexistrar só os complementos que necesitas. 🦸

puppeteer-extra : Configuración e complementos para o rascado web

Podes engadir ás dependencias npm do teu proxecto con:
 npm install puppeteer-extra


⚠️ Nota : puppeteer-extra require que puppeteer funcione, así que asegúrate de que os dous paquetes estean instalados no teu proxecto.


Despois, tes que importar o obxecto puppeteer de puppeteer-extra en lugar da biblioteca puppeteer :

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

Todo na API de Puppeteer segue igual, pero obtén un pouco de maxia extra ✨. O obxecto puppeteer agora expón un método use() para conectar os complementos de Puppeteer Extra.


É hora de mergullarse no que poden facer estes complementos e ver como subirán de nivel o teu xogo de rascado web.

titiritero-extra-plugin-sigilo

, tamén coñecido simplemente como Puppeteer Stealth, inclúe un conxunto de configuracións deseñadas para reducir a detección de bots. Anula as propiedades e configuracións detectables de Puppeteer que poden expoñelo como un bot.


Para obter máis detalles, consulta a nosa 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())

titiritero-recursos-bloques-extra-plugin

Un complemento para evitar que o navegador Puppeteer cargue recursos específicos. Os tipos de recursos admitidos inclúen document , stylesheet , image , media , font , script , texttrack , xhr , fetch , eventsource , websocket , manifest , other .


O bloqueo de recursos pódese configurar tanto a nivel global como local.


⚙️ 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"


Despois podes configurar os recursos para bloquear globalmente en todas as páxinas:
 puppeteer.use(BlockResourcesPlugin({ blockedTypes: new Set(["image", "stylesheet"]), }))


Do mesmo xeito, pode seleccionar localmente os recursos que se van 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" })

titiritero-plugin-extra-anónimo-ua

Un complemento para anonimizar o User-Agent configurado polo navegador controlado por Puppeteer. 🎭


Permíteche eliminar a cadea 'Headless' do axente de usuario de Chrome no modo sen cabeza e admite a substitución dinámica do axente de usuario mediante unha función personalizada. Mírao en acción na nosa .


Descubra cal é o mellor axente de usuario para o rascado web!


⚙️ 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, pode configurar o axente de usuario anónimo:
 puppeteer.use(AnonymizeUAPlugin({ stripHeadless: true, }))


Ademais, pode configurar un axente de usuario dinámico mediante unha función personalizada:
 puppeteer.use(AnonymizeUAPlugin({ customFn: (ua) => ua.replace("Chrome", "Chromium")}) }))

Puppeteer Extra non é unha solución de panacea

Do mesmo xeito que con Playwright , por moi elegante e personalizado que sexa o teu guión de Puppeteer, os sistemas anti-bot avanzados aínda poden detectarte e apagarte. Pero como é posible iso? 🤔


puppeteer-extra-stealth-plugin desagrega para ti:

Teña en conta: considero esta unha competición amigable nun xogo de gato e rato bastante interesante. Se o outro equipo (👋) quere detectar cromo sen cabeza aínda hai formas de facelo (polo menos notei algúns, que abordarei en futuras actualizacións).


Probablemente sexa imposible evitar todas as formas de detectar o cromo sen cabeza, pero debería ser posible facelo tan difícil que se faga un custo prohibitivo ou desencadee demasiados falsos positivos para ser factible.


Entón, aínda que Puppeteer Extra pode esquivar a detección de bots máis básica como Neo en Matrix, seguramente non pode evitar Cloudflare . Por suposto, poderías , pero aínda que iso non sexa suficiente.


O problema non é o propio Puppeteer (porque sexamos auténticos, Puppeteer rocks! 🤘), senón o navegador que controla. A verdadeira solución? Un navegador potente que:
  • Funciona en modo encabezado como un navegador normal para reducir a detección de bots.
  • Escala na nube para ti, aforrándoche tempo e custos na xestión da infraestrutura.
  • Ofrece IPs rotativas alimentadas por unha das redes proxy máis grandes e fiables do mercado.
  • Xestiona automaticamente a resolución de CAPTCHA, a pegada dixital do navegador, a personalización de cookies e cabeceiras e reintentos para unha eficiencia óptima.
  • Intégrase perfectamente coas principais bibliotecas de automatización de navegadores como Playwright, Selenium e Puppeteer.


Créalo ou non, este non é un soño afastado. É real, e é exactamente o que ofrece de Bright Data.

Pensamentos finais

Puppeteer é unha das ferramentas de automatización do navegador máis utilizadas no mundo da tecnoloxía, pero ata os superheroes teñen os seus límites. A comunidade interveu con puppeteer-extra , un paquete que lle dá a Puppeteer unhas novas habilidades moi interesantes a través de complementos personalizados.


Pero aquí está a cousa: aínda que estes complementos poden facer que a túa operación de rascado sexa moito máis forte, non te converterán nunha pantasma 👻. É posible que os sitios con detección avanzada de bot aínda poidan bloquearte.


Evita todos os anti-bots co navegador Scraping de Bright Data, un navegador na nube non detectable que . Únete á nosa misión de facer da web un espazo público para todos, en todas partes, mesmo a través de scripts automatizados.


Ata a próxima, segue explorando Internet con liberdade! 🌐
L O A D I N G
. . . comments & more!

About Author

Bright Data HackerNoon profile picture
Bright Data@brightdata
From data collection to ready-made datasets, Bright Data allows you to retrieve the data that matters.

Etiquetas colgantes

ESTE ARTIGO FOI PRESENTADO EN...

바카라사이트 바카라사이트 온라인바카라