Данните за цените на дървесината в Европа са технически публични, но практически неизползваеми. Една държава посочва цените на дъба в евро на кубичен метър, без данъци. Съседна нация споделя цените на бука в местна валута, с включен данък, заровени в сканиран PDF без слой за търсене на текст. За да станат нещата още по-сложни, правостоящи дървета, трупи край пътя и избрани партиди от търгове често се котират едни до други, сякаш са идентични продукти.
Суровите данни съществуват. Пазарна информация обаче липсва.
KORENA стартира KORENA Timber Index , за да коригира това. Резултатът е ежедневен, свободно достъпен справочник за цените на европейската широколистна дървесина, дървен материал и плочи. Към средата на 2026 г. индексът проследява приблизително двадесет вида и 170 регионални ценови реда в десет държави (Румъния, Германия, България, Полша, Франция, Австрия, Италия, Финландия, Норвегия, Швеция), плюс общоевропейско пазарно ниво.
За да може инженерен екип от двама души да покрие толкова голям обхват, KORENA трябваше да вземе едно основно решение: кой ще управлява уеб частта. Те избраха FourA, и насочиха всичко през него.
Един портал към мрежата
KORENA направи архитектурен избор в ранен етап: всеки външен уеб request преминава през FourA. Те се освободиха от разпръснати scrapers, еднократни скриптове и персонализирани команди, скрити в кодовата база.
Не ставаше въпрос за удобство. Ставаше въпрос за последователност. Горските портали се държат непредвидимо. Някои са статични HTML страници. Други са модерни платформи за търгове, които показват данни само след като браузърът ги рендерира. Правителствените сайтове често са бавни, остарели или силно защитени.
Чрез насочване на целия трафик през request инфраструктурата на FourA, KORENA управлява повторните опити, backoff, логването и известяването по един и същ начин за всеки източник. И всеки извлечен документ може да бъде хеширан, съхранен и проследен обратно до крайната му цена за целите на одита.
Избор на правилната стратегия за извличане за всеки източник
Вместо да кодират твърдо логиката за извличане за всеки сайт, KORENA свързва всеки източник на данни с конкретен FourA endpoint директно в своята база данни (вижте избор на правилния тип задача за пълното описание). Те могат да сменят стратегиите, без да променят основния си код за парсване:
Single (
/single/): статични HTML страници, XML фийдове и директни изтегляния на PDF. Германски статистически доклади, актуализации от българското държавно горско стопанство, румънски ценови таблици. Бърз, лек, правилният избор по подразбиране за повечето сайтове.Browser (
/browser/): интерактивни уеб приложения, които изискват реален контекст на браузъра. Полската платформа за търгове e-Drewno изисква рендериране, преди да се покажат цифрите. Първоначалният HTML не съдържа нищо полезно.Proxy Finder (
/proxy/): резервният вариант за най-трудните цели. По-силна ротация, плюсunblocker: trueза защитни стени срещу ботове на ниво ръкостискане.
Тъй като това е настройка за всеки отделен източник, а не твърдо кодиран скрипт, KORENA може да премести даден източник от Single към Browser или Proxy Finder, когато даден сайт промени защитата си. Слоят за парсване изобщо не разбира за това.
Сканирани PDF файлове: Най-трудната част
Модерните уеб API са лесни за работа. Най-трудният случай за автоматизиране са PDF файловете, съдържащи само изображения. Ценови листи и резултати от търгове, публикувани като сканирани копия, без никакъв текстов слой. За човек това е досадно. За ежедневен индекс това спира целия pipeline.
Работният процес (pipeline) на KORENA се справя с тях чрез ясно разделение на задачите:
Retrieval: FourA изтегля суровите PDF байтове, ежедневно и надеждно.
Text evaluation: KORENA проверява файла за използваем вграден текстов слой.
Processing and extraction: ако PDF файлът е плоско изображение, KORENA растеризира страниците и ги прекарва през OCR и AI извличане на документи, като прилага персонализирани езикови подсказки и речници за видовете дървесина, за да улови местната горска терминология.
Schema validation: изходните данни се валидират спрямо същата схема, както всеки друг източник.
Нищо от това не работи, ако не можете да извличате документа надеждно всеки ден. Това е стъпката, за която отговаря FourA.
Извличане срещу разбиране: Ясно разделение
Работата на FourA е да доставя надеждно сурови байтове. Не е необходимо да знае нищо за дървесината. Това позволява на KORENA да фокусира 100% от енергията си върху това, което действително умее: превръщането на хаотични данни в стандартизиран индекс. Всичко, което е специфично за домейна, остава в KORENA. HTML се парсва локално, дигиталните PDF файлове се четат с pdfjs-dist, а сканираните PDF файлове се обработват чрез OCR.
Стъпката по нормализиране е мястото, където суровите числа се превръщат в индекс. Цената на правостоящо дърво не е същата като цената на труп за разбичване, а резултат от местен търг с включен ДДС не е пряко съпоставим с експортна оферта без ДДС. За да превърне суровите числа в съпоставима пазарна информация, KORENA конвертира всички данни в един стандарт: евро на кубичен метър, без ДДС, доставен еквивалент.
За да направи това точно, системата взема предвид:
- Ежедневните валутни курсове на Европейската централна банка.
- Локализираните правила за ДДС в отделните държави.
- Транспортните коефициенти въз основа на етапа на обработка на дървесината.
Индексът също така държи отделно различните пазарни нива. Облата дървесина на едро, търговете за ценна дървесина и обявите на дребно се показват като отделни категории и никога не се смесват. Премиум партида от търг не може да изкриви базовата линия.
Разделението е същността: FourA решава достъпа до уеб, KORENA решава въпроса с дървесината. Нито едно от двете не се превръща в черна кутия, от която другото зависи.
Защо прозрачността на цените на дървесината изведнъж стана спешна
По-строгите европейски регулации, включително Регламентът на ЕС за обезлесяването (EUDR), тласкат пазара на дървесина към пълна проследимост и по-чиста документация за произхода. Прозрачността на ценообразуването е другата половина от това уравнение. Производителите на дървесина, които сравняват регионалните стойности, купувачите, които валидират оферти, и дигиталните пазари, които определят базови нива, се нуждаят от ежедневни, локализирани и съпоставими данни. Не от остарели годишни средни стойности. Не от еднократни местни цифри.
За да може малък инженерен екип от двама души да покрие десет държави и стотици непредвидими уеб формати, те не можеха да си позволят да губят време в управление на proxy инфраструктура, флотилии от браузъри и заобикаляне на защити срещу ботове (вижте скритата цена на поддръжката на собствени scrapers за пълните изчисления). FourA се справя със слоя за request. KORENA си връща времето, за да се съсредоточи върху нормализирането на видовете, настройката на OCR, логиката на ценообразуването и одитните пътеки, работата, която само те могат да свършат.
Ежедневните цени на дървесината в миналото означаваха телефонно обаждане до вашия регионален брокер. Сега всеки може сам да начертае кривата на timber-index.korena.eu. Следващите десет продукта от типа на Index няма да имат време да изграждат слоя за извличане от нулата. Това е залогът, който правим.
Изграждате продукт върху публични уеб данни и ви е писнало да поддържате собствени scrapers и proxy инфраструктура? Започнете с FourA.