Prejsť na obsah
Interný nástrojAutomatizáciaNode.jsV prevádzke

Scrapik: čistý zoznam kontaktov namiesto hodín hľadania

Interný nástroj, ktorý pomáha pripraviť a vyčistiť zoznam firemných kontaktov z verejných zdrojov. Výstup sa dá stiahnuť do CSV alebo zapísať do Notionu.

RolaZadanie, návrh, vývoj
Pre kohoInterne v nkz
ZdrojePlaces API, firmy.cz, ARES
Scrapik – webové rozhranie so živým logom
Zadanie

Zoznam, ktorý sa dá poslať

Pre Walio potrebujeme prehľad kaviarní, reštaurácií a kaderníctiev po mestách. Ručné hľadanie znamenalo hodinu práce na dvadsať kontaktov a veľká časť údajov bola neaktuálna.

Zadanie preto neznelo „stiahni čo najviac adries“, ale „daj mi zoznam, ktorý sa dá použiť bez ručného čistenia“. Kvalita dát rozhoduje viac než ich počet.

Čo sme dodali

Šesť častí nástroja

Zber cez oficiálne API

Podniky hľadáme cez Google Places API po mestských častiach, nie scrapovaním Maps. Odpovede sa cachujú, takže opakovaný beh nepáli kredit.

Dohľadanie e-mailu

Keď na webe podniku e-mail nie je, skúsi sa ďalší verejný zdroj, napríklad firmy.cz. Číta aj zahmlené adresy typu „info [at] domena“.

IČO a právna forma z ARES

Ku každému podniku sa dohľadá IČO a právna forma z verejného registra. Záznam v zozname sa tak dá spárovať s konkrétnou firmou.

Validácia a čistenie

Placeholdery, šablónové weby a nesúhlasné adresy padnú. E-mail prejde len vtedy, keď má doména platný MX záznam, takže v zozname nezostanú adresy na nefunkčných doménach.

Web pre netechnického kolegu

Formulár, živý log priebehu a stiahnutie CSV s vybranými stĺpcami. API kľúč zostáva na serveri, kolega ho nevidí.

Zápis do Notionu

Výsledky idú popri CSV rovno do Notion databázy. Stĺpce sa párujú podľa názvov a ten istý podnik sa nepridá dvakrát.

Prečo takto

Dve rozhodnutia, ktoré držia dáta použiteľné

Oficiálne API, nie scrapovanie Maps

Podniky hľadáme cez oficiálne Google Places API, nie scrapovaním Maps. Je to drahšie, ale nástroj sa nerozbije pri každej zmene stránky.

Radšej prázdne pole než zlý údaj

E-mail prejde len s funkčnou doménou a zhodou s názvom podniku, IČO sa overuje kontrolnou číslicou. Pokrytie e-mailov je vďaka tomu nižšie, zato sa zoznam dá použiť bez ručného čistenia.

Priebeh

Od skriptu k nástroju pre tím

Ručný zber ako východiskový bod

Kontakty na podniky sme predtým hľadali po jednom. Hodinu práce na dvadsať adries, z ktorých mnohé boli nefunkčné.

Spracovanie podľa jasných pravidiel

Vyhľadanie, detaily, doplnenie, kontrola, výstup. Každý krok sa dá pustiť zvlášť a má vlastné testy.

Prísna validácia

Najprv sme hnali objem, potom sme zistili, že rozhoduje kvalita. Pridali sme MX kontrolu a zhodu názvu s e-mailom.

Rozhranie pre celý tím

Aby nástroj nezostal len u vývojára, dostal jednoduché rozhranie v prehliadači a nasadenie na Render.

Technológie

Node, žiadny framework

Dlhobežiaca úloha, takže klasický server, nie serverless funkcia.

Nástroj a prevádzka
Node.jsESMGoogle Places APIARES APINotion APIServer-Sent EventsCSVMX kontrolaRender
Rozsah

Rozsah riešenia

3Zdroje dát: Google Places, firmy.cz, ARES
2Výstupy: CSV a databáza v Notione

Riešite niečo podobné?

Napíšte nám, kde vám miznú hodiny. Ozveme sa do dvoch pracovných dní.

Ďalšie projekty

Čo sme robili ďalej

Všetky projekty →