Kodrana

Blog · · 11 min czytania

Integracja API czy web scraping – jak wybrać sposób pobierania danych

Potrzebujesz danych z obcego serwisu – cenników konkurencji, ofert z portalu ogłoszeniowego, stanów magazynowych dostawcy. Pierwsza myśl: sprawdzić, czy jest API. Drugie pytanie: kiedy oficjalna integracja API wystarcza, a kiedy jedynym rozwiązaniem pozostaje scraping? W praktyce obie metody mają swoje miejsce, a często najlepiej działają razem.

Czym jest integracja API i jak działa

API (Application Programming Interface) to zestaw reguł i endpointów udostępnionych przez właściciela platformy, przez które programy mogą wymieniać dane w kontrolowany sposób. Zamiast odczytywać strukturę strony HTML, wysyłasz zapytanie HTTP do konkretnego adresu, przekazujesz klucz uwierzytelniający i otrzymujesz odpowiedź w formacie JSON lub XML. Dokumentacja opisuje dostępne pola, limity zapytań (rate limits), kody błędów i sposób paginacji.

Zalety są oczywiste: stabilna struktura danych, którą dostawca utrzymuje i wersjonuje, mniejsze ryzyko blokady (bo właściciel sam zaprasza do korzystania), często lepsza wydajność niż parsowanie HTML. Automatyzacja procesów przez API bywa prostsza, bo nie musisz analizować layoutu strony.

Minusy pojawiają się w szczegółach: nie każdy serwis oferuje publiczne API, nie wszystkie dane widoczne na stronie trafiają do endpointów, a limity zapytań mogą okazać się wąskim gardłem w projekcie wymagającym dużych wolumenów. Ponadto dostęp bywa uzależniony od procesu zatwierdzania, który potrafi trwać tygodniami.

Kiedy oficjalne API wystarcza

API świetnie sprawdza się w sytuacjach, gdy potrzebujesz danych, które platforma sama chce udostępniać swoim partnerom lub deweloperom. Typowe scenariusze:

  • Synchronizacja stanów magazynowych własnego sklepu z marketplace'ami (Allegro, Amazon, marketplace'y zagraniczne) – platformy handlowe oferują dobrze udokumentowane endpointy do zarządzania ofertami, zamówieniami i cenami.
  • Integracja z systemem płatności lub bramką SMS – dostawcy usług finansowych i telekomunikacyjnych udostępniają API jako podstawowy kanał komunikacji dla biznesu.
  • Pobieranie danych z narzędzi analitycznych i CRM – Google Analytics, Facebook Ads, LinkedIn Campaign Manager, Salesforce, HubSpot i podobne platformy B2B zakładają, że klienci będą łączyć się przez API.
  • Publikowanie treści w mediach społecznościowych – Instagram Graph API, Facebook Graph API, LinkedIn Marketing API pozwalają zarządzać postami, komentarzami i statystykami (w granicach polityki każdej platformy).

W tych przypadkach API jest nie tylko wystarczające, ale wręcz preferowane: dostawca dba o kompatybilność wsteczną, informuje z wyprzedzeniem o zmianach i oferuje wsparcie techniczne. Jeśli dokumentacja pokrywa wszystkie pola, których potrzebujesz, a limity mieszczą się w twoim planie zapytań – integracja API to oczywisty wybór.

Typowe ograniczenia API, które blokują projekt

Brakujące pola i niepełne dane

Najczęstszy problem: strona wyświetla więcej informacji niż API zwraca. Portal nieruchomości może pokazywać w ogłoszeniu nazwę dewelopera, etap budowy, mapę dojazdu i zdjęcia balkonu, ale endpoint /listings zwraca tylko podstawowe parametry: adres, cenę, metraż i typ. Allegro udostępnia przez API dane o ofercie, ale historyczne zmiany cen, liczba wyświetleń w czasie rzeczywistym czy szczegóły pozycjonowania w wynikach wyszukiwania pozostają poza dokumentacją.

Jeśli brakujące pole jest kluczowe dla twojego modelu biznesowego (np. monitorujesz zmiany cen konkurencji i potrzebujesz historii), API przestaje być rozwiązaniem.

Limity zapytań (rate limits) i koszty

Większość API nakłada ograniczenia: 100 requestów na minutę, 10 000 wywołań dziennie, albo model pay-per-call po przekroczeniu darmowego limitu. Dla małego projektu to nie problem, ale gdy budujesz agregator ofert z kilkunastu marketplace'ów i musisz odpytywać dziesiątki tysięcy produktów co godzinę, limity szybko stają się wąskim gardłem.

Przykład: Google Maps API pobiera opłatę za każde wywołanie powyżej miesięcznego limitu darmowego. Jeśli scrapujesz dane lokalizacyjne tysięcy firm dziennie, koszt integracji może przewyższyć budżet całego projektu. Alternatywa – scraping publicznie dostępnych wyników map – działa bez opłat za volumen, choć wymaga więcej pracy technicznej.

Proces zatwierdzania i weryfikacja biznesowa

Platformy społecznościowe i niektóre marketplace'y wymagają wniosku o dostęp do API: opisujesz przypadek użycia, przechodzisz weryfikację firmy, czasem musisz przedstawić prototyp aplikacji. Facebook Graph API w wersji rozszerzonej (np. dostęp do danych o użytkownikach poza twoją stroną) wymaga App Review, który może trwać kilka tygodni i zostać odrzucony, jeśli platforma uzna, że twój use case narusza jej politykę.

LinkedIn ogranicza dostęp do API dla programów partnerskich i weryfikowanych firm – indywidualny deweloper nie dostanie klucza do Campaign Management API bez biznesowego kontraktu. W takich sytuacjach scraping publicznie dostępnych danych pozostaje legalną i praktyczną alternatywą (o ile nie łamiesz regulaminu dotyczącego automatyzacji i nie pobierasz danych osobowych bez zgody).

Zmiany w polityce i zamknięcie dostępu

API to czyjaś własność, a właściciel decyduje o regułach. Twitter (X) w 2023 roku zlikwidował darmowy dostęp do API i wprowadził płatne plany od 92 € miesięcznie, odcinając tysiące projektów badawczych i startupów. Reddit podniósł ceny API do poziomu, który zmusił największe aplikacje mobilne do zamknięcia. Instagram wielokrotnie ograniczał endpointy dostępne dla zewnętrznych narzędzi analitycznych.

Jeśli twój biznes opiera się na strumieniu danych z obcego API, ryzykujesz, że dostawca zmieni warunki lub zamknie dostęp bez ostrzeżenia. Scraping danych publicznych – choć technicznie bardziej wymagający – daje większą niezależność.

Kiedy scraping jest jedynym wyjściem

Web scraping to proces automatycznego odczytu i parsowania danych ze stron internetowych. Program (scraper) wysyła zapytania HTTP, odbiera HTML, wyciąga potrzebne informacje z tagów i atrybutów, a następnie strukturyzuje je w formatach CSV, JSON lub przesyła dalej do bazy danych. W przeciwieństwie do API, scraping nie wymaga zgody właściciela strony – pod warunkiem, że działasz zgodnie z prawem i regulaminem serwisu.

Scraping staje się konieczny, gdy:

  • Platforma w ogóle nie oferuje API – dotyczy większości polskich portali ogłoszeniowych, serwisów nieruchomości takich jak Morizon, Gratka, portali z ofertami pracy jak Pracuj.pl czy Praca.pl, a także branżowych katalogów firm.
  • API istnieje, ale kluczowe dane są dostępne tylko na stronie – ceny historyczne, opinie użytkowników, szczegóły specyfikacji produktu, dane kontaktowe sprzedawców w ogłoszeniach.
  • Potrzebujesz danych z wielu źródeł, a każde ma własne API z inną strukturą i limitami – agregacja wymaga jednolitego pipeline'u, łatwiej zbudować uniwersalny scraper niż integrować kilkanaście różnych endpointów.
  • Chcesz monitorować treści konkurencji w czasie rzeczywistym – publikacje na blogach, zmiany na stronach produktowych, aktualizacje cenników – które nie są dostępne przez żadne API.
  • Zbierasz dane do trenowania modelu AI i potrzebujesz ogromnych wolumenów z publicznie dostępnych źródeł (artykuły, recenzje, opisy produktów) – koszt API byłby nieproporcjonalny.

Legalność scrapingu w Polsce opiera się na kilku filarach: zbierasz dane publicznie dostępne (nie logujesz się na cudze konta), nie naruszasz praw autorskich (fakty i dane nie podlegają ochronie, ale oryginalne teksty już tak), nie pobierasz danych osobowych bez podstawy prawnej (RODO, art. 6), nie obchodzisz zabezpieczeń technicznych w sposób, który łamie prawo (ustawa o ochronie baz danych, art. 7, zakazuje obchodzenia technicznych środków ochrony, ale samo odczytywanie publicznie dostępnego HTML to nie obchodzenie). Regulaminy serwisów często zabraniają automatyzacji – naruszenie to podstawa do cywilnego zakazu lub zablokowania IP, nie przestępstwo.

W praktyce: jeśli strona wymaga logowania, a dane są poza nim – możesz scrapować. Jeśli dane są za paywallem lub wymagają zalogowania – musisz mieć zgodę albo konsultację prawną. Jeśli pobierasz dane osobowe (nawet publicznie dostępne) – potrzebujesz podstawy z RODO, najczęściej prawnie uzasadniony interes (art. 6 ust. 1 lit. f), który musisz zważyć z prawami osób, których dane dotyczą.

API czy scraping: porównanie kosztów i utrzymania

Decyzja między integracją API a scrapingiem to nie tylko kwestia techniczna, ale i ekonomiczna. Koszty różnią się w zależności od skali, źródła danych i czasu trwania projektu.

Koszty wdrożenia

Integracja z dobrze udokumentowanym API zajmuje zazwyczaj kilka dni roboczych programisty: uwierzytelnienie, mapowanie endpointów, obsługa błędów i paginacji. Jeśli dokumentacja jest niekompletna lub API niestabilne, czas wydłuża się. Automatyzacja przez API prostych przepływów (np. synchronizacja produktów ze sklepu na Allegro) to projekt od kilku do kilkunastu godzin pracy.

Scraping danych z jednej strony zaczyna się od analizy struktury HTML, identyfikacji selektorów CSS lub XPath, testowania na próbce, obsługi paginacji i ewentualnie renderowania JavaScript (jeśli strona ładuje dane dynamicznie). Dla prostej strony statycznej to 1-2 dni, dla serwisu z ochroną anty-botową (Cloudflare, Datadome, captcha) – nawet tydzień. Gotowe scrapery z katalogu skracają czas do zera: wybierasz źródło, definiujesz pola, dostajesz dane w 2-5 dni roboczych.

W Kodrana jednorazowy eksport do 10 000 rekordów z strony o średniej ochronie kosztuje od 229 €, subskrypcja z cotygodniowymi aktualizacjami – od 89 € miesięcznie plus jednorazowa konfiguracja. Integracja API w ramach projektu automatyzacji zaczyna się od kilkuset euro, w zależności od złożoności.

Koszty bieżące i utrzymanie

API wymaga monitorowania limitów i ewentualnej opłaty za przekroczenie – ale samo się nie psuje, bo dostawca dba o kompatybilność. Zmiany w strukturze są rzadkie i ogłaszane z wyprzedzeniem (w teorii). Główny koszt to infrastruktura po twojej stronie: serwer, baza danych, logi.

Scraper wymaga reakcji na zmiany w layoutcie strony – serwis zmienia strukturę HTML, dodaje nowe klasy CSS, przestawia paginację, wdraża ochronę anty-botową. Strony blokują scrapery przez rate limiting, analizę fingerprinta przeglądarki, captche, honeypoty (pułapki w HTML niewidoczne dla ludzi). W praktyce scraper dla dużego serwisu wymaga naprawy co kilka miesięcy. Subskrypcja scrapingu w Kodrana obejmuje naprawy w ciągu 48 godzin po wykryciu zmiany, więc klient nie musi się tym zajmować.

Jeśli budujesz scraper samodzielnie (in-house lub zlecasz programistę projektowo), pamiętaj o koszcie utrzymania: każda awaria to godziny debugowania, każda zmiana na stronie to kolejne poprawki. Gotowe narzędzia scrapingowe (browser extensions, no-code platformy typu Octoparse, ParseHub) działają dobrze dla małych wolumenów i prostych stron, ale mają ograniczenia skali i elastyczności. Koszt scrapingu zależy od liczby źródeł, wolumenu danych, częstotliwości odświeżania i poziomu ochrony – warto policzyć TCO (total cost of ownership) na 12 miesięcy, nie tylko cenę startu.

Łączenie API i scrapingu w jednym projekcie

Najlepsze rozwiązania rzadko polegają na wyborze albo-albo. Często optymalny pipeline łączy oba podejścia: używasz API tam, gdzie jest dostępne i wystarczające, a scraping wypełnia luki.

Przykład: monitoring cen konkurencji na marketplace'ach. Allegro oferuje publiczne API z danymi o ofertach, więc pobierasz stamtąd ceny i stany magazynowe. Ceneo nie ma API dla zewnętrznych firm – scrapujesz publicznie dostępne wyniki wyszukiwania. Amazon teoretycznie ma Product Advertising API, ale dostęp wymaga statusu partnera afiliacyjnego i limity są restrykcyjne – scraping uzupełnia dane, których API nie zwraca (np. liczba opinii w czasie rzeczywistym, pozycja w rankingu bestselerów).

Inny scenariusz: agregator ofert nieruchomości. Otodom pozwala pobrać podstawowe dane ofert (jeśli jesteś partnerem), ale szczegóły deweloperów, plany mieszkań, rankingi biur – to scraping. Morizon, Gratka, Domiporta w ogóle nie oferują API, więc cały pipeline opiera się na scrapingu. Wynik: jeden zunifikowany feed danych z kilkunastu źródeł, niezależnie od tego, czy źródło udostępnia API.

W projektach agentów AI i systemów analitycznych często potrzebujesz danych z wielu źródeł na raz: API do danych transakcyjnych (CRM, płatności), scraping do danych rynkowych (konkurencja, trendy, opinie). Model AI uczy się na danych historycznych ze scrapingu, a w produkcji odpytuje API w czasie rzeczywistym.

  1. Zinwentaryzuj wszystkie źródła danych potrzebne do projektu.
  2. Sprawdź, które oferują publiczne API i przeczytaj dokumentację – zwróć uwagę na dostępne pola, limity, koszty i proces zatwierdzania.
  3. Zidentyfikuj luki: dane dostępne tylko na stronie, dane poza limitami API, źródła bez API.
  4. Oszacuj koszt i czas wdrożenia dla każdej metody – wlicz utrzymanie na 12 miesięcy.
  5. Zdecyduj, gdzie API wystarcza, a gdzie scraping jest konieczny lub tańszy.
  6. Zbuduj zunifikowany pipeline, który obsługuje oba źródła i dostarcza dane w jednym formacie (JSON, CSV, baza danych).
  7. Ustaw monitoring: alerty na awarie API, alerty na zmiany struktury stron, logi błędów scrapingu.
  8. Zaplanuj budżet na utrzymanie – naprawy scraperów, ewentualne przejście na płatne API, skalowanie infrastruktury.

Wybór metody: praktyczna lista kontrolna

Przed podjęciem decyzji odpowiedz sobie na kilka pytań:

  • Czy źródło oferuje publiczne API? Jeśli tak – przeczytaj dokumentację i sprawdź, czy zwraca wszystkie pola, których potrzebujesz.
  • Czy limity API mieszczą się w twoim planie zapytań? Policz dzienny i miesięczny wolumen danych, porównaj z rate limits.
  • Czy dostęp do API wymaga procesu zatwierdzania lub partnerstwa? Jeśli tak – oszacuj czas i prawdopodobieństwo akceptacji.
  • Czy koszt API (opłaty za volumen, subskrypcja) jest akceptowalny? Porównaj z kosztem zbudowania i utrzymania scrapera.
  • Czy dane, których potrzebujesz, są publicznie dostępne na stronie? Jeśli tak – scraping jest opcją.
  • Czy regulamin serwisu wyraźnie zabrania automatyzacji i jakie są konsekwencje? Pamiętaj: naruszenie regulaminu to sprawa cywilna (zakaz, odszkodowanie), nie karna.
  • Czy dane zawierają informacje osobowe i masz podstawę prawną do ich przetwarzania (RODO art. 6)?
  • Jak często dane się zmieniają i jak szybko potrzebujesz aktualizacji? API zwykle lepiej sprawdza się w real-time, scraping – w cyklach (godzinowych, dziennych).
  • Czy źródeł danych jest wiele i mają różne struktury API? Jeśli tak – zunifikowany scraper może być prostszy niż dziesiątki integracji.
  • Czy masz zespół do utrzymania scrapera (reakcja na zmiany layoutu, obchodzenie ochrony) czy wolisz subskrypcję z SLA?

W praktyce odpowiedź często brzmi: użyj API tam, gdzie możesz, a scraping tam, gdzie musisz. Nie ma jednego uniwersalnego rozwiązania, a elastyczność w podejściu daje przewagę nad konkurencją, która tkwi w ograniczeniach oficjalnych integracji.

Jak zacząć: test danych bez zobowiązań

Jeśli nie masz pewności, czy scraping zadziała dla twojego źródła lub jak wygląda jakość danych, nie musisz od razu zamawiać pełnego projektu. W Kodrana oferujemy bezpłatny test: przysyłasz adres strony i listę pól, które cię interesują, my sprawdzamy poziom ochrony anty-botowej i wysyłamy próbkę 50-100 rekordów przed jakąkolwiek płatnością. Jeśli dane spełniają twoje oczekiwania, kontynuujesz z jednorazowym eksportem lub subskrypcją z regularnymi aktualizacjami. Jeśli okaże się, że API z danego źródła jednak wystarcza – podpowiemy najlepszą drogę integracji. Skontaktuj się przez Telegram @kodrana lub formularz na stronie, opisz projekt i otrzymasz wycenę w ciągu 24 godzin.

FAQ

Czy mogę legalnie scrapować dane, skoro regulamin serwisu zabrania automatyzacji?

Regulamin to umowa cywilna między tobą a właścicielem serwisu. Naruszenie może skutkować zablokowaniem konta, zakazem sądowym lub roszczeniem odszkodowawczym, ale to nie jest przestępstwo. Jeśli zbierasz publicznie dostępne dane (bez logowania) i nie naruszasz praw autorskich ani RODO, działasz w granicach prawa, choć wbrew regulaminowi. W praktyce wiele firm scrapuje konkurencję mimo zapisów regulaminowych – ryzyko blokady IP jest realne, ryzyko procesu sądowego mniejsze, ale istnieje. Jeśli wątpisz, skonsultuj się z prawnikiem.

Czy API jest zawsze szybsze niż scraping?

Nie zawsze. API zwykle odpowiada szybciej niż renderowanie pełnej strony HTML, ale jeśli endpoint ma ograniczenie 10 requestów na sekundę, a ty potrzebujesz pobrać 100 000 rekordów, scraping z wieloma równoległymi requestami może być szybszy (o ile strona nie ma rate limitingu). Ponadto scraping prostej strony statycznej bywa równie szybki jak API, bo oba sposoby to zapytania HTTP – różnica leży w parsowaniu odpowiedzi.

Jak często scraper wymaga naprawy po zmianie strony?

Zależy od serwisu. Duże platformy (Allegro, OLX, Otodom) zmieniają layout co kilka miesięcy. Mniejsze strony mogą nie zmieniać struktury HTML latami. W praktyce scraper wymaga interwencji średnio 2-4 razy w roku dla popularnych serwisów. Subskrypcja scrapingu w Kodrana obejmuje naprawy w ciągu 48 godzin, więc klient nie ponosi kosztów ani przestojów.

Czy mogę połączyć dane z API i scrapingu w jednej bazie?

Tak, to standardowa praktyka. Budujesz pipeline ETL (Extract, Transform, Load), który pobiera dane z różnych źródeł (część przez API, część przez scraping), normalizuje strukturę (te same nazwy kolumn, formaty dat, typy danych) i ładuje do wspólnej bazy lub hurtowni danych. Narzędzia typu Apache Airflow, Prefect lub prosty skrypt w Pythonie (biblioteki requests, BeautifulSoup, pandas) radzą sobie z tym bez problemu.

Ile kosztuje integracja API w porównaniu do scrapingu?

Integracja z dobrze udokumentowanym API to zazwyczaj kilka do kilkunastu godzin programisty (460–1840 € w zależności od stawki i złożoności). Scraping prostej strony to podobny koszt wdrożenia, ale do tego dochodzi utrzymanie (naprawy co kilka miesięcy). Subskrypcja scrapingu w Kodrana od 89 € miesięcznie zawiera naprawy i hosting, więc porównywalny koszt z API bez niespodzianek. Jeśli API ma wysokie opłaty za volumen (np. Google Maps powyżej limitu darmowego), scraping może być tańszy długoterminowo.

Potrzebujesz tych danych dla swojego biznesu?

Wyślij nam stronę i pola, których potrzebujesz. Sprawdzimy je i wyślemy darmową próbkę 50–100 rekordów, zanim zapłacisz.

lub napisz bezpośrednio

Napisz do @kodrana na Telegram
Twój kontakt wykorzystamy wyłącznie do odpowiedzi na to zapytanie.
Telegram