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! 🚀
je lagani omot oko puppeteer
koji omogućava integraciju dodataka kroz čist interfejs. Iako ga nije razvio tim koji stoji iza , ovaj projekat vođen zajednice ima stotine hiljada preuzimanja sedmično i preko 6k zvjezdica na GitHubu 📈.
Pogledajte — jasno je da je repo puppeteer-extra
u stalnom porastu popularnosti tokom godina:
User-Agent
na svim stranicama, uz podršku za dinamičku zamjenu.Bez sumnje, Puppeteer je jedna od najboljih . 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 .
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 Scraping 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.
⚙️ 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
.
⚙️ 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"
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" })
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 .
⚙️ 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"
puppeteer.use(AnonymizeUAPlugin({ stripHeadless: true, }))
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? 🤔
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 , ali čak ni to možda neće biti dovoljno.
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.