paint-brush
Eleva o teu proxecto de raspado con Puppeteer Extrapor@brightdata
438 lecturas
438 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 raspar web con Puppeteer , 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?

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 de Puppeteer , este proxecto impulsado pola comunidade ten centos de miles de descargas semanais e máis de 6.000 estrelas en GitHub 📈.


Consulte o gráfico de estrelas de GitHub a continuación : 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:

Ademais destes, intégrase cos seguintes complementos da comunidade:

Por que necesitamos unha versión extra de Puppeteer?

Sen dúbida, Puppeteer é unha das principais bibliotecas de navegadores sen cabeza para raspar e probar . 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 Puppeteer Extra á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

Puppeteer Extra Plugin Stealth , 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 como evitar o bloqueo 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())

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("https://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 guía do axente de usuario de Puppeteer .


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? 🤔


A documentación 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 integrar un proxy en Puppeteer , 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 o navegador Scraping 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 se integra perfectamente con Puppeteer . Ú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...