Puppeteer ilə veb kazıma təlimatımızda vurğulandığı kimi, bu brauzer avtomatlaşdırma kitabxanası dinamik məzmun saytlarından məlumat çıxarmaq üçün fantastik müttəfiqdir. Yenə də, hər hansı digər vasitə kimi, onun çatışmazlıqları var. Puppeteer Extra işə başladığı yerdir!
Bu bələdçidə biz sizi puppeteer-extra
ilə tanış edəcəyik — puppeteer
plagin dəstəyi ilə genişləndirmək üçün onu əhatə edən kitabxana. Puppeteer kazıma layihənizi növbəti səviyyəyə aparmağa hazır olun! 🚀
Puppeteer Extra, təmiz interfeys vasitəsilə plagin inteqrasiyasına imkan verən puppeteer
ətrafına yüngül sarğıdır. O, Puppeteer-in arxasında duran komanda tərəfindən hazırlanmasa da, icma tərəfindən idarə olunan bu layihənin GitHub 📈-də həftəlik yüz minlərlə endirmə və 6k-dan çox ulduzu var.
Aşağıdakı GitHub ulduzları cədvəlinə baxın — aydındır ki, puppeteer-extra
repo illər ərzində davamlı olaraq populyarlıq qazanır:
Puppeteer Extra tərəfindən rəsmi olaraq dəstəklənən plaginlər bunlardır:
User-Agent
başlığını dinamik dəyişdirmə dəstəyi ilə bütün səhifələrdə anonimləşdirmək üçün.Bunlara əlavə olaraq, aşağıdakı icma plaginləri ilə inteqrasiya olunur:
Şübhəsiz ki, Puppeteer kazıma və sınaq üçün ən yaxşı başsız brauzer kitabxanalarından biridir. Ancaq gəlin dürüst olaq - xüsusən brauzer barmaq izi və CAPTCHA kimi anti-bot texnologiyası ilə qarşılaşdıqda bunun öz məhdudiyyətləri var. reCAPTCHA avtomatlaşdırılması ilə necə məşğul olmağı öyrənmək üçün bələdçimizi oxuyun.
Anti-bot müdafiəsi ilə silahlanmış veb saytlar Puppeteer skriptlərini asanlıqla aşkarlaya və bloklaya bilər. Kaş ki, Kuklaçının standart davranışını genişləndirmək və fərdiləşdirmək üçün bir yol olsaydı...
...yaxşı, Puppeteer Extra tam olaraq budur!
Puppeteer Extra, bu böyük çatışmazlıqları aradan qaldırmaq üçün plagin dəstəyi əlavə edərək, Kukla üçün gücləndirici kimidir. Sizin üçün hər şeyi ləğv etmək və ya genişləndirmək əvəzinə, o, Puppeteer-i əhatə edir və yalnız sizə lazım olan plaginləri qeydiyyatdan keçirməyə imkan verir. 🦸
puppeteer-extra
: Veb Scraping üçün Quraşdırma və PluginlərLayihənizin npm asılılıqlarına Puppeteer Extra əlavə edə bilərsiniz:
npm install puppeteer-extra
⚠️ Qeyd : puppeteer-extra
işləmək üçün puppeteer
tələb edir, ona görə də hər iki paketin layihənizdə quraşdırıldığından əmin olun.
Sonra puppeteer
obyektini puppeteer
kitabxanası əvəzinə puppeteer-extra
idxal etməlisiniz:
const puppeteer = require("puppeteer-extra") // for ESM users: // const { puppeteer } from "puppeteer-extra"
Puppeteer API-də hər şey eyni qalır, lakin siz bir az əlavə sehr əldə edirsiniz ✨. puppeteer
obyekti indi Puppeteer Extra plaginlərini qoşmaq üçün use()
metodunu ifşa edir.
Bu plaginlərin nə edə biləcəyinə dalmaq və onların veb kazıma oyununuzu necə səviyyəyə qaldıracaqlarına baxmaq vaxtıdır!
Puppeteer Extra Plugin Stealth , sadəcə olaraq Puppeteer Stealth olaraq da bilinir, bot aşkarlanmasını azaltmaq üçün hazırlanmış bir sıra konfiqurasiyaları ehtiva edir. O, Kuklaçının aşkar edilə bilən xassələrini və onu bot kimi ifşa edə biləcək parametrlərini ləğv edir.
Daha ətraflı məlumat üçün, Puppeteer Stealth ilə bloklanmamaq üçün təlimatımıza baxın.
⚙️ Quraşdırma :
npm install puppeteer-extra-plugin-stealth
💡 İstifadəsi :
const StealthPlugin = require("puppeteer-extra-plugin-stealth") // for ESM users: // import StealthPlugin from "puppeteer-extra-plugin-stealth" puppeteer.use(StealthPlugin())
Puppeteer brauzerinin xüsusi resursları yükləməsinin qarşısını alan plagin. Dəstəklənən resurs növlərinə document
, stylesheet
, image
, media
, font
, script
, texttrack
, xhr
, fetch
, eventsource
, websocket
, manifest
və other
daxildir .
Resursların bloklanması həm qlobal, həm də yerli olaraq konfiqurasiya edilə bilər.
⚙️ Quraşdırma :
npm install puppeteer-extra-plugin-block-resources
💡 İstifadəsi :
const BlockResourcesPlugin = require("puppeteer-extra-plugin-block-resources") // for ESM users: // import BlockResourcesPlugin from "puppeteer-extra-plugin-block-resources"
Daha sonra resursları bütün səhifələrdə qlobal şəkildə bloklamaq üçün konfiqurasiya edə bilərsiniz:
puppeteer.use(BlockResourcesPlugin({ blockedTypes: new Set(["image", "stylesheet"]), }))
Eynilə, bloklanacaq resursları yerli olaraq seçə bilərsiniz:
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" })
Puppeteer tərəfindən idarə olunan brauzer tərəfindən müəyyən edilmiş User-Agent
anonimləşdirmək üçün plagin. 🎭
Bu, başsız rejimdə Chrome istifadəçi agentindən 'Headless'
sətrini çıxarmaq imkanı verir və xüsusi funksiya vasitəsilə istifadəçi agentinin dinamik dəyişdirilməsini dəstəkləyir. Puppeteer istifadəçi agenti təlimatımızda buna baxın.
Veb kazıma üçün ən yaxşı istifadəçi agentinin nə olduğunu kəşf edin!
⚙️ Quraşdırma :
npm install puppeteer-extra-plugin-anonymize-ua
💡 İstifadəsi :
const AnonymizeUAPlugin = require("puppeteer-extra-plugin-anonymize-ua") // for ESM users: // import AnonymizeUAPlugin from "puppeteer-extra-plugin-anonymize-ua"
Sonra, anonim istifadəçi agentini konfiqurasiya edə bilərsiniz:
puppeteer.use(AnonymizeUAPlugin({ stripHeadless: true, }))
Həmçinin, xüsusi funksiya vasitəsilə dinamik istifadəçi agenti təyin edə bilərsiniz:
puppeteer.use(AnonymizeUAPlugin({ customFn: (ua) => ua.replace("Chrome", "Chromium")}) }))
Playwright ilə olduğu kimi , Kukla skriptiniz nə qədər səliqəli və fərdiləşdirilmiş olsa da, qabaqcıl anti-bot sistemləri hələ də sizi iyləyə və bağlaya bilər. Bəs bu necə mümkündür? 🤔
puppeteer-extra-stealth-plugin
sənədləri onu sizin üçün parçalayır:
Diqqət edin: Mən bunu kifayət qədər maraqlı pişik-siçan oyununda dostluq yarışması hesab edirəm. Digər komanda (👋) başsız xromu aşkar etmək istəyirsə, bunun hələ də yolları var (ən azı bir neçəsini qeyd etdim, gələcək yeniləmələrdə həll edəcəyəm).
Başsız xromun aşkarlanmasının bütün yollarının qarşısını almaq, yəqin ki, mümkün deyil, lakin bunu o qədər çətinləşdirmək mümkün olmalıdır ki, o, xərci qadağan edəcək və ya mümkün olması üçün çoxlu yalan pozitivlərə səbəb olacaq.
Beləliklə, Puppeteer Extra Matrix-də Neo kimi ən əsas bot aşkarlanmasından yayına bilsə də, o, şübhəsiz ki, Cloudflare-dən yan keçə bilməz. Əlbətdə ki, siz Proksi-ni Puppeteer-ə inteqrasiya edə bilərsiniz, lakin hətta bu kifayət olmaya bilər.
Problem Puppeteer-in özündə deyil (çünki real olaq, Puppeteer qayadır! 🤘), onun idarə etdiyi brauzerdir. Həqiqi həll? Güclü brauzer:
İster inanın, istər inanmayın, bu heç də uzaq xəyal deyil. Bu realdır və Bright Data-nın Scraping Brauzerinin təklif etdiyi şey budur!
Puppeteer texnologiya dünyasında ən çox istifadə edilən brauzer avtomatlaşdırma vasitələrindən biridir, lakin hətta super qəhrəmanların da öz məhdudiyyətləri var. İcma xüsusi plaginlər vasitəsilə Puppeteer-ə bəzi ciddi yeni qabiliyyətlər verən puppeteer-extra
paketi ilə addım atdı.
Ancaq burada bir şey var: bu plaginlər kazıma əməliyyatınızı xeyli gücləndirə bilsə də, sizi sehrli şəkildə xəyala çevirməyəcək 👻. Qabaqcıl bot aşkarlaması olan saytlar hələ də sizi bloklaya bilər!
Bright Data's Scraping Browser - Puppeteer ilə problemsiz inteqrasiya edən aşkar edilməyən bulud brauzeri ilə bütün anti-botları yan keçin. Vebi hər kəs üçün, hər yerdə, hətta avtomatlaşdırılmış skriptlər vasitəsilə ictimai məkana çevirmək missiyamıza qoşulun.
Növbəti dəfəyə qədər interneti sərbəst şəkildə kəşf etməyə davam edin! 🌐