Web enrichment Playwright + browser-use kombinĂĄciĂłval
A Nortinia Sales AI legmĂ©lyebb Ă©s legkockĂĄzatosabb komponense az enrichment-svc. Egy Python FastAPI service, amely Playwright-tel Ă©s a browser-use könyvtĂĄrral szed le adatot lead URL-ekrĆl. Ez a cikk arrĂłl szĂłl, mit csinĂĄl pontosan, miĂ©rt Ăgy csinĂĄljuk, Ă©s mit szĂșrtunk el mĂĄrciusban.
Miért Playwright és nem requests + BeautifulSoup
A modern B2B oldalak 80%-a JavaScript-heavy. Egy egyszerƱ HTTP get a legtöbb esetben ĂŒres HTML shell-t ad vissza, a tĂ©nyleges tartalom hydration utĂĄn jelenik meg. PrĂłbĂĄltuk elĆször requests-szel â minden negyedik oldalon hiĂĄnyzott a hero szöveg, az About oldal teljesen ĂŒres volt, Ă©s a tech-stack-detection nem ment, mert nem futottak le a tracking scriptek.
A Playwright headless Chromium-mal lefuttatja a teljes oldalt, megvårja a network idle-t, és csak utåna olvas. Lassabb (3-8x), de hasznålható adatot ad vissza.
Mi a browser-use szerepe
A browser-use egy LLM-asszisztĂĄlt browser-control könyvtĂĄr. A klasszikus Playwright-script merev selectorokra Ă©pĂŒl (.hero-text, #about-section). Ezek hetente törnek, mert minden tenant redesignol valamit.
A browser-use ehelyett kap egy magas szintƱ utasĂtĂĄst ("szedj le egy About szekciĂłt, ha van"), Ă©s LLM-mel talĂĄlja meg az oldalon. Ez 4x ellenĂĄllĂłbb a layout-vĂĄltozĂĄsokra, Ă©s Ășj tenant onboardinghoz nem kell selector-mapet Ărni.
KöltsĂ©g-mellĂ©khatĂĄs: minden enrichment hĂv 2-4 LLM completiont. Cost-monitoring kötelezĆ.
Mit szedĂŒnk le
- Landing hero â elsĆ kĂ©pernyĆ szöveg, fĆ CTA, language detect
- Navigation tree â felsĆ menĂŒ struktĂșra, mĂ©lyebb oldalak felfedezĂ©sĂ©re
- About / Team â alkalmazotti lĂ©tszĂĄm-jelek (csoportkĂ©p, nĂ©v-felsorolĂĄs)
- Pricing / Plans â ha publikus, az ĂĄrszĂnvonal Ă©s a target segment
- Tech stack hints â HTTP headerbĆl (Server, X-Powered-By), HTML attribĂștumokbĂłl (data-react, ng-app), CDN-bĆl (Cloudflare, Vercel, Akamai)
- Contact â public email patterns, telefon (de csak public, nem dial)
- Recent news â Google News API a cĂ©g nevĂ©vel, utolsĂł 90 nap
CAPTCHA stratégia: NONE
A legfontosabb design-döntés: nem oldunk meg CAPTCHA-t. Sem 2captcha-szerƱ szolgåltatåst, sem ML-megoldó modellt nem hasznålunk. Ha egy oldal CAPTCHA-t mutat, az signal: most ne forgalmazzunk. A scraper exponential backoff-ra megy (24h, 48h, 96h), és csak nyilvånos source-okra tåmaszkodik (LinkedIn public profile, Google News, public domain WHOIS-jellegƱ info).
UgyanĂgy: robots.txt-t tiszteletben tartjuk. Ha egy path Disallow-ban van, nem scraping. Ez nem szabĂĄlyozĂĄsi kötelezettsĂ©g, hanem önkĂ©nt vĂĄllalt korlĂĄt â Ă©s sokszor megspĂłrolt minket egy szolgĂĄltatĂĄs-banoltatĂĄstĂłl.
A mĂĄrciusi rotating-IP bug
2026 mĂĄrciusban kĂ©t hĂ©tig fejjel a falnak mentĂŒnk. Az enrichment success rate 67%-rĂłl 41%-re esett. PrĂłbĂĄltuk a Playwright timeoutot növelni, a browser-use modellt cserĂ©lni, Ășj selector-stratĂ©giĂĄt Ărni â semmi nem segĂtett.
A root cause egy IP-rotation pool kimerĂŒlĂ©se volt. A residential proxy szolgĂĄltatĂłnknĂĄl egy konkrĂ©t rĂ©giĂł (KözĂ©p-EurĂłpa) IP-poolja kifogyott, Ă©s a rendszer csendben datacenter IP-kre vĂĄltott. A datacenter IP-ket a megcĂ©lzott oldalak fingerprinteltĂ©k Ă©s blokkoltĂĄk.
A fix: Ășj provider, jobb pool-monitoring, Ă©s egy belsĆ dashboard, amely panel-szinten mutatja a success rate-et IP-osztĂĄly bontĂĄsban. Ha 6 ĂłrĂĄn ĂĄt 50% alĂĄ esik, alarm. AzĂłta hat hĂłnapja nem ismĂ©tlĆdött.
A tanulsĂĄg: a scraping infrastruktĂșra annyira törĂ©keny, hogy önĂĄllĂł observability rĂ©teg kell rĂĄ. Nem elĂ©g az alkalmazĂĄs-szintƱ APM.
Költségek pontosan
Egy åtlag cég-enrichment:
- Playwright session (1 oldal Ă 3-5 path): 8-12 mĂĄsodperc CPU + 80 MB RAM
- Browser-use LLM hĂvĂĄs (2-4 darab
gpt-4.1-mini): 0,006-0,012 USD - StruktĂșrĂĄlt extract (1 hĂvĂĄs
gpt-4.1-mini): 0,008 USD - News API: 0,001 USD
- Proxy bandwidth: 0,003 USD
Ăsszesen ĂĄtlag: 0,02 USD / cĂ©g. Ez 1 420 lead / hĂ©t tenantnĂĄl havi ~120 USD enrichment költsĂ©g.
Mit nem csinĂĄlunk
Nem scraping login mögötti adatot. Nem oldunk meg captchĂĄt. Nem vĂĄsĂĄrolunk leak-elt adatbĂĄzist. Nem szelekteljĂŒk az IP pool-t country-spoofingra. Az enrichment csak public source-ra Ă©pĂt, vagy egyĂĄltalĂĄn nem fut.