Monitorowanie dostępności stronyTworzenie i dostosowywanie

Skrypt w Pythonie, który sprawdza, czy Twoja strona odpowiada, i wysyła Ci e-mail z Twojej własnej skrzynki, gdy przestaje działać

Zwykle gotowe w ok. 15 minutPoprawki w cenieKontrola jakości
Pakiety
Ochrona płatnościSzczegóły
  • Poprawki w ramach pakietu są bezpłatne.
  • Jeśli nie odpowiesz w ciągu 3 dni od dostarczenia pracy, zostanie ona zaakceptowana automatycznie.

Pieniądze są rezerwowane w chwili płatności i przekazywane dopiero po akceptacji pracy.

Skrypt w Pythonie, który sprawdza, czy Twoja strona odpowiada, i wysyła Ci e-mail z Twojej własnej skrzynki, gdy przestaje działać

Przykładowy rezultat

Przykład dla pakietu Standard

Łączenie miesięcznych plików sprzedaży 9 sklepów w jeden raport w Excelu

Jak się go uruchamia

python merge_sales.py --month 2026-10
2026-11-02 09:14:03 INFO  Folder: sales/2026-10, znaleziono 9 plików
2026-11-02 09:14:03 INFO  shop-01.csv: 1284 wiersze
2026-11-02 09:14:04 INFO  shop-02.xlsx: 967 wierszy
2026-11-02 09:14:04 WARN  shop-07.csv: pominięto 3 wiersze bez ceny (linie 88, 412, 913)
2026-11-02 09:14:05 INFO  Gotowe: 10 412 wierszy -> report-2026-10.xlsx (arkusze „Sprzedaż” i „Podsumowanie”)

Ustawienia zamiast kodu

Nazwy kolumn każdego sklepu są zapisane w settings.ini, więc nowy sklep albo kolumna o zmienionej nazwie to po prostu jeden wiersz w tym pliku:

[columns]
date = Data, Data sprzedaży, Dzień
product = Produkt, Towar, Nazwa
quantity = Ilość, Szt., Liczba sztuk
price = Cena, Cena jedn.

Fragment kodu

def read_shop_file(path: Path, columns: dict[str, list[str]]) -> pd.DataFrame:
    """Wczytuje plik jednego sklepu i nadaje mu nazwy kolumn raportu."""
    table = pd.read_excel(path) if path.suffix == ".xlsx" else pd.read_csv(path, encoding="utf-8-sig")
    renamed = {}
    for name, variants in columns.items():
        found = next((c for c in table.columns if c.strip() in variants), None)
        if found is None:
            raise ReportError(f"{path.name}: brak kolumny dla '{name}' (szukano: {', '.join(variants)})")
        renamed[found] = name
    table = table.rename(columns=renamed)[list(columns)]
    table["shop"] = path.stem
    return table

Pliki: archiwum ZIP z plikami merge_sales.py (310 wierszy), settings.ini, requirements.txt oraz README, które opisuje instalację Pythona, uruchomienie skryptu i znaczenie każdego komunikatu w dzienniku. Klient uruchamia skrypt na własnym komputerze.

Klient: mała sieć 9 sklepów papierniczych; każdy sklep przesyła sprzedaż za miesiąc w pliku CSV lub Excel, z nieco innymi nazwami kolumn. Zadanie: jeden skrypt, który wczytuje każdy plik z folderu, sprowadza kolumny do jednego układu i zapisuje jeden raport w Excelu z całą sprzedażą oraz arkuszem podsumowań według sklepów.

Klient i wszystkie dane są wymyślone.

O usłudze

Jeśli Twój sklep albo strona rezerwacji przestanie działać w nocy, możesz się o tym dowiedzieć dopiero rano od klienta. Ten skrypt w Pythonie co kilka minut otwiera wskazane strony i wysyła Ci e-mail, gdy któraś przestaje odpowiadać, zwraca błąd albo, od pakietu Standard, ładuje się bez słowa, które musi się na niej znaleźć, na przykład bez przycisku Dodaj do koszyka. Zanim podniesie alarm, próbuje ponownie, więc pojedyncza wolna odpowiedź Cię nie obudzi, a gdy strona wróci, pisze jeszcze raz. E-maile wychodzą z Twojego własnego konta pocztowego; hasło do wysyłki sam wpisujesz w ustawieniach. Uruchom go na komputerze lub serwerze, który jest stale włączony i nie jest tym, na którym działa Twoja strona, inaczej ucichnie razem z nią. Informuje o problemie; nie naprawia go.

Co obejmuje usługa

  • Co otrzymaszArchiwum ZIP ze skryptem w Pythonie, plikiem README z instrukcją krok po kroku oraz, od pakietu Standard, plikiem ustawień z adresami i ustawieniami poczty; kod widać też na stronie zamówienia.
  • Awaria i powrótJeden e-mail przy awarii, jeden po powrocie
  • Bez fałszywych alarmówPonawia próbę, zanim do Ciebie napisze
  • Sprawdzanie treści stronyOd pakietu Standard słowo, które musi być na stronie
  • Z Twojej skrzynkiTwoje własne konto pocztowe, hasło poza kodem
  • Czytelny kodZ komentarzami, łatwo później dodać stronę

Jak to działa

  1. 1
    ZadanieWypisujesz strony do obserwowania i miejsce, gdzie mają trafiać alerty
  2. 2
    KodPiszemy skrypt i instrukcję uruchomienia
  3. 3
    WypróbujUruchamiasz go z nieistniejącą stroną, żeby zobaczyć, jak przychodzi alert
  4. 4
    ZmianyZgłaszasz poprawki w ramach pakietu i przesyłasz ewentualny komunikat o błędzie

Czego potrzebujemy od Ciebie

Adresy do obserwowania (strona główna, koszyk, strona rezerwacji), jak często je sprawdzać, a od pakietu Standard słowo lub fraza, którą musi pokazywać każda strona. Dokąd mają trafiać alerty i z którego konta pocztowego mają być wysyłane (wystarczy nazwa Twojego dostawcy, żebyśmy opisali jego ustawienia wysyłki; hasło wpisujesz sam). Gdzie będzie działał skrypt: na stale włączonym komputerze czy na serwerze, i z jakim systemem (Windows, macOS lub Linux).

Zapytamy Cię:

  • Które strony ma obserwować?
  • Jak często i co uznajemy za awarię?
  • Dokąd mają trafiać alerty?
  • Gdzie będzie działał?

Porównaj pakiety

PakietyPodstawowyJedna strona, jeden alert61 złStandardSprawdzanie z ustawieniami125 złPremiumNarzędzie do monitorowania252 zł
Termin1 dzień2 dni3 dni
Poprawki123
Koddo 150 wierszydo 400 wierszydo 1000 wierszy
Pliki z kodem1do 3do 8
Plik ustawieńNieTakTak
Czytelne komunikaty o błędach i logNieTakTak
Opcje uruchamiania i instrukcja uruchamiania według harmonogramuNieNieTak
Instrukcja instalacji i uruchomienia (README)TakTakTak
JęzykPythonPythonPython
Zamów PodstawowyZamów StandardZamów Premium

Ochrona płatności

Płacisz przy składaniu zamówienia, ale pieniądze są przekazywane tylko za zaakceptowaną pracę.

  • Stała cenaCena pakietu nie zmienia się po zapłacie.
  • Pieniądze są zarezerwowanePrzy płatności kwota jest tylko rezerwowana. Serwis otrzymuje ją dopiero po akceptacji pracy.
  • Sprawdzone przed dostarczeniemKażdy wynik przechodzi kontrolę jakości, zanim do Ciebie trafi, a przed akceptacją widzisz go na stronie zamówienia.
  • Bezpłatne poprawkiProś o poprawki w ramach briefu tyle razy, ile przewiduje pakiet.
  • Akceptacja po 3 dniachJeśli w ciągu 3 dni od dostarczenia pracy ani jej nie zaakceptujesz, ani nie poprosisz o poprawki, zostanie zaakceptowana automatycznie. Jeśli po dostarczeniu napiszesz na czacie zamówienia, zamówienie czeka; po naszej odpowiedzi możemy ponownie uruchomić odliczanie 3 dni i poinformujemy o tym na czacie.
  • Ponowne wykonanie lub pełny zwrot pieniędzyJeśli wynik nie odpowiada Twojemu briefowi, a poprawki tego nie naprawiły, lub praca trwa ponad dwa razy dłużej niż termin, napisz na czacie zamówienia: wykonamy pracę ponownie albo zwrócimy całą płatność.
Jak to działa →

Pytania i odpowiedzi

Gdzie mam go uruchomić?

Na urządzeniu, które jest zawsze włączone i oddzielone od Twojej strony, na przykład na komputerze w biurze, domowym miniserwerze lub małym wynajętym serwerze. Jeśli działa na tym samym serwerze co strona, padnie razem z nią i nie zdoła Cię ostrzec.

Czy zamiast e-maila może wysłać SMS?

Ta oferta wysyła e-maile. Wiele telefonów potrafi pokazać e-mail jako powiadomienie; wiadomość do serwisu z publicznym API można dodać w ramach pakietu, z Twoim własnym kluczem w ustawieniach.

Czy sprawdzi szybkość lub bezpieczeństwo mojej strony?

Mierzy, ile czasu zajmuje odpowiedź każdej strony, a w pakiecie Premium ostrzega po przekroczeniu Twojego limitu. Nie testuje bezpieczeństwa, nie szuka wirusów i nie loguje się do paneli administracyjnych.

Ile e-maili może wysłać?

Pisze tylko wtedy, gdy coś się zmieni: raz, gdy strona przestanie działać, i raz, gdy wróci, więc z zapasem mieści się w limitach wysyłki Twojego serwisu pocztowego.

Nie ma tu odpowiedzi?

Pakiety