paint-brush
Creșteți-vă proiectul de răzuire cu Puppeteer Extrade@brightdata
438 lecturi
438 lecturi

Creșteți-vă proiectul de răzuire cu Puppeteer Extra

de Bright Data6m2024/09/04
Read on Terminal Reader

Prea lung; A citi

Puppeteer Extra îmbunătățește Puppeteer prin adăugarea de suport pentru pluginuri pentru a rezolva limitările acestuia. Acest wrapper ușor introduce pluginuri pentru sarcini precum evitarea detectării botului, rezolvarea CAPTCHA-urilor și blocarea resurselor nedorite. În ciuda punctelor sale forte, sistemele avansate anti-bot încă pot detecta Puppeteer. Explorați pluginurile Puppeteer Extra pentru a vă îmbunătăți jocul de scraping pe web, dar fiți conștienți de faptul că apărările sofisticate împotriva botului pot pune în continuare provocări.
featured image - Creșteți-vă proiectul de răzuire cu Puppeteer Extra
Bright Data HackerNoon profile picture
0-item

După cum este subliniat în ghidul nostru pentru web scraping cu Puppeteer , această bibliotecă de automatizare a browserului este un aliat fantastic pentru extragerea datelor de pe site-uri cu conținut dinamic. Totuși, ca orice alt instrument, are deficiențele sale. Aici intervine Puppeteer Extra!


În acest ghid, vă vom prezenta puppeteer-extra — o bibliotecă care învelește puppeteer pentru a-l extinde cu suport pentru pluginuri. Pregătește-te să-ți duci proiectul de răzuit Puppeteer la următorul nivel! 🚀

Ce este Puppeteer Extra?

Puppeteer Extra este un înveliș ușor pentru puppeteer care permite integrarea pluginurilor printr-o interfață curată. Deși nu este dezvoltat de echipa din spatele Puppeteer , acest proiect condus de comunitate are sute de mii de descărcări săptămânale și peste 6.000 stele pe GitHub 📈.


Consultați graficul stelelor GitHub de mai jos - este clar că repo puppeteer-extra a cunoscut o creștere constantă a popularității de-a lungul anilor: Ascensiunea Puppeteer Extra pe GitHub

Pluginurile acceptate oficial de Puppeteer Extra sunt:

Pe lângă acestea, se integrează cu următoarele pluginuri comunitare:

De ce avem nevoie chiar și de o versiune suplimentară a lui Puppeteer?

Fără îndoială, Puppeteer este una dintre cele mai bune biblioteci de browser fără cap pentru răzuire și testare . Dar să fim sinceri – are limitele sale, mai ales când se confruntă cu tehnologii anti-bot, cum ar fi amprentarea browserului și CAPTCHA-urile. Citiți ghidul nostru pentru a afla cum să faceți față automatizării reCAPTCHA .


Site-urile web înarmate cu apărări anti-bot pot detecta și bloca cu ușurință scripturile Puppeteer. Dacă ar exista o modalitate de a extinde și personaliza comportamentul implicit al lui Puppeteer...


...ei bine, exact despre asta este Puppeteer Extra!

Puppeteer Extra vs Puppeteer

Puppeteer Extra este ca o putere pentru Puppeteer, adăugând suport pentru pluginuri pentru a rezolva aceste dezavantaje majore. În loc să suprascrie sau să extindă totul pentru dvs., acesta include Puppeteer și vă permite să înregistrați numai pluginurile de care aveți nevoie. 🦸

puppeteer-extra : Configurare și pluginuri pentru Web Scraping

Puteți adăuga Puppeteer Extra la dependențele npm ale proiectului dvs. cu:

 npm install puppeteer-extra


⚠️ Notă : puppeteer-extra necesită ca puppeteer să funcționeze, așa că asigurați-vă că ambele pachete sunt instalate în proiectul dvs.


Apoi, trebuie să importați obiectul puppeteer din puppeteer-extra în loc de biblioteca puppeteer :

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

Totul în API-ul Puppeteer rămâne la fel, dar obțineți puțină magie în plus ✨. Obiectul puppeteer expune acum o metodă use() pentru a conecta pluginurile Puppeteer Extra.


Este timpul să vă scufundați în ceea ce pot face aceste plugin-uri și să vedeți cum vă vor crește nivelul jocului de scraping web!

păpușar-extra-plugin-stealth

Puppeteer Extra Plugin Stealth , cunoscut și sub numele de Puppeteer Stealth, include un set de configurații concepute pentru a reduce detectarea botului. Acesta suprascrie proprietățile detectabile și setările lui Puppeteer care l-ar putea expune ca bot.


Pentru mai multe detalii, consultați ghidul nostru despre cum să evitați blocarea cu Puppeteer Stealth .


⚙️ Instalare :

 npm install puppeteer-extra-plugin-stealth


💡 Utilizare :

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

păpușar-resurse-extra-plugin-bloc

Un plugin pentru a împiedica browserul Puppeteer să încarce anumite resurse. Tipurile de resurse acceptate includ document , stylesheet , image , media , font , script , texttrack , xhr , fetch , eventsource , websocket , manifest , other .


Blocarea resurselor poate fi configurată atât la nivel global, cât și local.


⚙️ Instalare :

 npm install puppeteer-extra-plugin-block-resources


💡 Utilizare :

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


Puteți configura apoi resursele pentru a le bloca global pe toate paginile:

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


În mod similar, puteți selecta local resursele care trebuie blocate:

 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" })

păpușar-extra-plugin-anonymize-ua

Un plugin pentru anonimizarea User-Agent setat de browser-ul controlat de Puppeteer. 🎭


Vă oferă posibilitatea de a elimina șirul 'Headless' din agentul utilizator Chrome în modul fără cap și acceptă înlocuirea dinamică a agentului utilizator printr-o funcție personalizată. Vedeți-l în acțiune în ghidul nostru pentru agenții de utilizare Puppeteer .


Descoperiți care este cel mai bun agent de utilizare pentru web scraping!


⚙️ Instalare :

 npm install puppeteer-extra-plugin-anonymize-ua


💡 Utilizare :

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


Apoi, puteți configura agentul utilizator anonim:

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


De asemenea, puteți seta un agent de utilizator dinamic printr-o funcție personalizată:

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

Puppeteer Extra nu este o soluție de panaceu

La fel ca în cazul Playwright , indiferent cât de elegant și de personalizat este scenariul dvs. Puppeteer, sistemele avansate anti-bot vă pot adulmeca și vă pot opri. Dar cum este posibil asta? 🤔


Documentația puppeteer-extra-stealth-plugin ul detaliază pentru tine:

Vă rugăm să rețineți: consider aceasta o competiție amicală într-un joc destul de interesant de pisica și șoarecele. Dacă cealaltă echipă (👋) dorește să detecteze cromul fără cap, există încă modalități de a face asta (cel puțin eu am observat câteva, pe care le voi aborda în actualizările viitoare).


Probabil că este imposibil să previi toate modalitățile de detectare a cromului fără cap, dar ar trebui să fie posibil să fie atât de dificil încât să devină prohibitiv sau să declanșeze prea multe fals-pozitive pentru a fi fezabil.


Așadar, în timp ce Puppeteer Extra poate evita detectarea de bază a botului, cum ar fi Neo în Matrix, cu siguranță nu poate ocoli Cloudflare . Sigur, ai putea integra un proxy în Puppeteer , dar chiar și asta ar putea să nu fie suficient.


Problema nu este Puppeteer în sine (pentru că să fim reali, Puppeteer rocks! 🤘), ci browserul pe care îl controlează. Adevărata soluție? Un browser puternic care:

  • Funcționează în modul headed ca un browser obișnuit pentru a reduce detectarea botului.
  • Se scalează în cloud pentru dvs., economisind timp și costuri în gestionarea infrastructurii.
  • Oferă IP-uri rotative alimentate de una dintre cele mai mari și mai fiabile rețele proxy de pe piață.
  • Se ocupă automat de rezolvarea CAPTCHA, amprentarea browserului, personalizarea cookie-urilor și a antetului și reîncercă pentru o eficiență optimă.
  • Se integrează perfect cu bibliotecile de top de automatizare a browserului, cum ar fi Playwright, Selenium și Puppeteer.


Credeți sau nu, acesta nu este un vis îndepărtat. Este real și este exact ceea ce are de oferit Bright Data's Scraping Browser !

Gânduri finale

Puppeteer este unul dintre cele mai utilizate instrumente de automatizare a browserului în lumea tehnologiei, dar chiar și supereroii au limitele lor. Comunitatea a intervenit cu puppeteer-extra , un pachet care îi oferă lui Puppeteer niște abilități noi foarte interesante prin pluginuri personalizate.


Dar iată problema: deși aceste plugin-uri vă pot face operația de răzuire mult mai puternică, nu vă vor transforma în mod magic într-o fantomă 👻. Este posibil ca site-urile cu detectare avansată a botului să vă blocheze!


Ocoliți toți anti-roboții cu Browserul Scraping de la Bright Data — un browser cloud nedetectabil care se integrează perfect cu Puppeteer . Alăturați-vă misiunii noastre de a face Web-ul un spațiu public pentru toată lumea, pretutindeni, chiar și prin scripturi automate.


Până data viitoare, continuă să explorezi internetul cu libertate! 🌐