Web scraping na zlecenie: pobieranie danych ze stron według harmonogramu
Ktoś w firmie co tydzień przepisuje ceny z kilku sklepów konkurencji albo przegląda portale z ogłoszeniami. Program może robić to sam, o ile strona na to pozwala i nie ma prostszego źródła tych samych danych.
Autor: Szymon Łakomy. Aktualizacja:
Jakie dane firmy zwykle zbierają
Ceny u konkurencji
Lista obserwowanych produktów: cena, promocja, dostępność. Pobierana raz dziennie albo kilka razy w tygodniu, z historią zmian.
Katalogi dostawców
Gdy hurtownia nie udostępnia pliku, tylko stronę z katalogiem: nazwy, parametry, indeksy i ceny dla zalogowanego partnera.
Ogłoszenia
Nowe oferty z portali branżowych spełniające filtry, na przykład używane maszyny określonej marki albo działki w wybranych gminach.
Przetargi
Ogłoszenia z wybranych platform według słów kluczowych i kodów CPV. Ocenę treści przez AI opisuję przy AI do analizy przetargów.
Najpierw API, feed albo eksport
- Sprawdzam, czy serwis ma publiczne API albo plik z danymi do pobrania. To pewniejsze niż scraping, bo nie psuje się przy zmianie wyglądu strony.
- Pytam, czy dostawca może wysłać feed XML lub CSV. Hurtownie często mają go dla partnerów i wtedy wystarczy integracja z hurtownią przez XML.
- Dopiero gdy dane są tylko na stronie, bez logowania albo na Twoim własnym koncie partnera, piszę scraper.
Nie obchodzę zabezpieczeń: CAPTCHA, blokad adresów, logowania na cudze konta ani limitów, które właściciel ustawił celowo. Takie zabezpieczenia oznaczają, że właściciel nie życzy sobie automatycznego pobierania. Wtedy szukamy innej drogi, na przykład zapytania o płatny dostęp do danych.
Regulamin, prawo autorskie i bazy danych
To, że strona jest publiczna, nie znaczy, że wolno pobrać z niej wszystko i użyć dowolnie. Przed startem przechodzimy przez cztery pytania:
- co mówi regulamin serwisu i plik robots.txt, w którym właściciel opisuje zasady dla robotów,
- czy pobierane treści są utworami, jak opisy i zdjęcia produktów, których nie wolno skopiować do własnego sklepu,
- czy pobieranie dużej części zbioru nie narusza praw producenta bazy danych,
- czy w danych są dane osobowe, na przykład imiona i telefony z ogłoszeń, bo wtedy dochodzi RODO.
Harmonogram, tempo i eksport wyników
| Ustawienie | Co ustalamy | Przykład |
|---|---|---|
| Częstotliwość | jak świeże muszą być dane | ceny raz dziennie nad ranem, przetargi co kilka godzin |
| Tempo | odstępy między kolejnymi odwiedzinami | pojedyncze podstrony z przerwami, żeby nie obciążać serwisu |
| Miejsce zapisu | gdzie trafiają wyniki | Arkusz Google, baza danych, plik CSV na dysku firmy |
| Historia | czy trzymamy poprzednie wartości | zmiany ceny produktu w czasie |
| Alerty | kiedy ktoś dostaje wiadomość | nowy przetarg z filtra albo wyraźny spadek ceny u konkurenta |
Sam scraper piszę w Pythonie, a harmonogram, zapis i powiadomienia często spinam w n8n. Gdy na podstawie cen konkurencji chcesz zmieniać własne, reguły i bezpieczniki opisuję na stronie automatyczna zmiana cen w sklepie.
Co się psuje i jak to wychwycić
Scraper zależy od wyglądu cudzej strony. Po zmianie układu może przestać zbierać dane albo, co gorsze, zbierać niewłaściwe. Dlatego dodaję:
- kontrolę liczby rekordów, bo wyraźnie mniej wyników niż zwykle to sygnał do sprawdzenia,
- walidację formatu: cena musi być liczbą, a data datą,
- dziennik każdego uruchomienia z liczbą pobranych pozycji i błędami.
Poprawki po zmianach na stronach źródłowych ustalamy jako stałą opiekę albo osobne zlecenia, podobnie jak przy opiece nad automatyzacjami.
Najczęstsze pytania
Czy web scraping jest legalny?
Zależy od strony, rodzaju danych i sposobu ich użycia. Pobranie publicznych cen do własnej analizy to inna sytuacja niż kopiowanie opisów i zdjęć do sklepu. Sprawdzamy regulamin i zakres, a przy wątpliwościach polecam rozmowę z prawnikiem.
Ile stron obsłuży jeden scraper?
Każdy serwis ma własny układ, więc dla każdego piszę osobny moduł. Kilka sklepów na tej samej platformie to niewielka różnica, kilkadziesiąt różnych serwisów to osobny projekt z regularnym utrzymaniem.
Czy pobierzesz dane ze strony wymagającej logowania?
Tylko z konta Twojej firmy i tylko wtedy, gdy regulamin serwisu na to pozwala, na przykład z panelu partnera hurtowni. Nie loguję się na cudze konta i nie omijam zabezpieczeń.
W jakiej formie dostanę dane?
W arkuszu, bazie albo pliku CSV, z datą pobrania przy każdym rekordzie. Jeśli dane mają trafiać do sklepu lub ERP, dokładam import, a do analizy mogę przygotować zestawienie.
Powiązane strony
Ktoś w firmie ręcznie przepisuje dane ze stron?
Podaj adresy stron i pola, które Cię interesują. Sprawdzę, czy jest prostsze źródło, i zaproponuję sposób pobierania.