Kao što je istaknuto u našem vodiču za web scraping pomoću Puppeteer-a , ova biblioteka za automatizaciju pretraživača je fantastičan saveznik za vađenje podataka sa web lokacija sa dinamičkim sadržajem. Ipak, kao i svaki drugi alat, ima svojih nedostataka. Tu stupa Puppeteer Extra!
U ovom vodiču ćemo vas upoznati sa puppeteer-extra
— bibliotekom koja obavija puppeteer
kako bi ga proširila podrškom za dodatke. Spremite se da podignete svoj projekat Puppeteer struganja na viši nivo! 🚀
Puppeteer Extra je lagani omot oko puppeteer
koji omogućava integraciju dodataka kroz čist interfejs. Iako ga nije razvio tim koji stoji iza Puppeteer-a , ovaj projekat vođen zajednice ima stotine hiljada preuzimanja sedmično i preko 6k zvjezdica na GitHubu 📈.
Pogledajte GitHub tabelu zvijezda u nastavku — jasno je da je repo puppeteer-extra
u stalnom porastu popularnosti tokom godina:
Dodaci koje Puppeteer Extra službeno podržava su:
User-Agent
na svim stranicama, uz podršku za dinamičku zamjenu.Povrh toga, integrira se sa sljedećim dodacima zajednice:
Bez sumnje, Puppeteer je jedna od najboljih biblioteka pretraživača bez glave za scraping i testiranje . Ali budimo iskreni – to ima svoja ograničenja, posebno kada se suočite sa anti-bot tehnologijom poput otiska prsta u pretraživaču i CAPTCHA. Pročitajte naš vodič da naučite kako se nositi s reCAPTCHA automatizacijom .
Veb lokacije naoružane odbranom protiv robota mogu lako otkriti i blokirati Puppeteer skripte. Kad bi barem postojao način da se proširi i prilagodi zadano ponašanje Puppeteera...
…pa, to je upravo ono o čemu je Puppeteer Extra!
Puppeteer Extra je poput pojačanja za Puppeteer, koji dodaje podršku za dodatke za rješavanje tih velikih nedostataka. Umjesto da poništi ili proširi sve umjesto vas, on obavija Puppeteer i omogućava vam da registrujete samo dodatke koji su vam potrebni. 🦸
puppeteer-extra
: Postavljanje i dodaci za Web ScrapingMožete dodati Puppeteer Extra u npm zavisnosti vašeg projekta sa:
npm install puppeteer-extra
⚠️ Napomena : puppeteer-extra
zahtijeva puppeteer
da radi, stoga provjerite jesu li oba paketa instalirana u vašem projektu.
Zatim morate uvesti puppeteer
objekat iz puppeteer-extra
umjesto iz biblioteke puppeteer
:
const puppeteer = require("puppeteer-extra") // for ESM users: // const { puppeteer } from "puppeteer-extra"
Sve u Puppeteer API-ju ostaje isto, ali dobijate malo dodatne magije ✨. Objekt puppeteer
sada izlaže metodu use()
za uključivanje dodataka Puppeteer Extra.
Vrijeme je da zaronite u ono što ovi dodaci mogu učiniti i vidjeti kako će poboljšati vašu igru scrapinga!
Puppeteer Extra Plugin Stealth , također poznat jednostavno kao Puppeteer Stealth, uključuje skup konfiguracija dizajniranih da smanje otkrivanje botova. On nadjačava Puppeteer-ova svojstva i postavke koje se mogu otkriti koje bi ga mogle izložiti kao bota.
Za više detalja, pogledajte naš vodič o tome kako izbjeći blokiranje pomoću Puppeteer Stealtha .
⚙️ Instalacija :
npm install puppeteer-extra-plugin-stealth
💡 Upotreba :
const StealthPlugin = require("puppeteer-extra-plugin-stealth") // for ESM users: // import StealthPlugin from "puppeteer-extra-plugin-stealth" puppeteer.use(StealthPlugin())
Dodatak koji sprečava da pretraživač Puppeteer učitava određene resurse. Podržani tipovi resursa uključuju document
, stylesheet
, image
, media
, font
, script
, texttrack
, xhr
, fetch
, eventsource
, websocket
, manifest
, other
.
Blokiranje resursa može se konfigurirati i globalno i lokalno.
⚙️ Instalacija :
npm install puppeteer-extra-plugin-block-resources
💡 Upotreba :
const BlockResourcesPlugin = require("puppeteer-extra-plugin-block-resources") // for ESM users: // import BlockResourcesPlugin from "puppeteer-extra-plugin-block-resources"
Zatim možete konfigurirati resurse za globalno blokiranje na svim stranicama:
puppeteer.use(BlockResourcesPlugin({ blockedTypes: new Set(["image", "stylesheet"]), }))
Slično, možete lokalno odabrati resurse koji će biti blokirani:
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" })
Dodatak za anonimizaciju User-Agent
postavljenog od strane pretraživača koji kontroliše Puppeteer. 🎭
Daje vam mogućnost da skinete 'Headless'
string iz Chrome korisničkog agenta u bezglavom načinu rada i podržava dinamičku zamjenu korisničkog agenta putem prilagođene funkcije. Pogledajte to u akciji u našem vodiču za korisničkog agenta Puppeteer-a .
Otkrijte koji je najbolji korisnički agent za web scraping!
⚙️ Instalacija :
npm install puppeteer-extra-plugin-anonymize-ua
💡 Upotreba :
const AnonymizeUAPlugin = require("puppeteer-extra-plugin-anonymize-ua") // for ESM users: // import AnonymizeUAPlugin from "puppeteer-extra-plugin-anonymize-ua"
Zatim možete konfigurirati anonimnog korisničkog agenta:
puppeteer.use(AnonymizeUAPlugin({ stripHeadless: true, }))
Također, možete postaviti dinamičkog korisničkog agenta putem prilagođene funkcije:
puppeteer.use(AnonymizeUAPlugin({ customFn: (ua) => ua.replace("Chrome", "Chromium")}) }))
Baš kao i kod Playwright-a , bez obzira na to koliko je vaša skripta Puppeteer uglađena i prilagođena, napredni anti-bot sistemi i dalje vas mogu nanjušiti i isključiti. Ali kako je to uopće moguće? 🤔
Dokumentacija puppeteer-extra-stealth-plugin
a vam to rastavlja:
Napomena: smatram da je ovo prijateljsko takmičenje u prilično zanimljivoj igri mačke i miša. Ako drugi tim (👋) želi otkriti bezglavi hrom, još uvijek postoje načini za to (barem sam primijetio nekoliko, kojima ću se pozabaviti u budućim ažuriranjima).
Vjerojatno je nemoguće spriječiti sve načine otkrivanja hroma bez glave, ali bi trebalo biti moguće učiniti to toliko teškim da postane skupo ili izazove previše lažnih pozitivnih rezultata da bi bilo izvodljivo.
Dakle, dok Puppeteer Extra može izbjeći najosnovniju detekciju botova kao što je Neo u Matrixu, ne može sigurno zaobići Cloudflare . Naravno, mogli biste integrirati proxy u Puppeteer , ali čak ni to možda neće biti dovoljno.
Problem nije sam Puppeteer (jer budimo realni, Puppeteer rocks! 🤘), već pretraživač kojim upravlja. Pravo rješenje? Moćan pretraživač koji:
Vjerovali ili ne, ovo nije neki daleki san. Stvarno je, i to je upravo ono što Bright Data Scraping Browser može ponuditi!
Puppeteer je jedan od najčešće korištenih alata za automatizaciju pretraživača u svijetu tehnologije, ali čak i superheroji imaju svoja ograničenja. Zajednica je uskočila s puppeteer-extra
, paketom koji Puppeteeru daje neke ozbiljno cool nove sposobnosti putem prilagođenih dodataka.
Ali evo u čemu je stvar: iako ovi dodaci mogu učiniti vašu operaciju struganja mnogo jačom, oni vas neće magično pretvoriti u duha 👻. Web lokacije s naprednom detekcijom botova možda će vas i dalje moći blokirati!
Zaobiđite sve anti-botove pomoću Bright Data-ovog Scraping pretraživača—preglednika u oblaku koji se ne može otkriti i koji se neprimjetno integrira sa Puppeteer-om . Pridružite se našoj misiji da učinimo Web javnim prostorom za sve, svuda, čak i putem automatizovanih skripti.
Do sljedećeg puta, nastavite da istražujete Internet sa slobodom! 🌐