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! 🚀
é 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:
User-Agent
en todas as páxinas, con soporte para a substitución dinámica.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 .
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 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.
⚙️ 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())
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
.
⚙️ 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"
puppeteer.use(BlockResourcesPlugin({ blockedTypes: new Set(["image", "stylesheet"]), }))
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" })
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 .
⚙️ 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"
puppeteer.use(AnonymizeUAPlugin({ stripHeadless: true, }))
puppeteer.use(AnonymizeUAPlugin({ customFn: (ua) => ua.replace("Chrome", "Chromium")}) }))
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.
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.