Wprowadzenie

W tym przewodniku krok po kroku nauczysz się uruchamiać stabilną automatyzację wielowątkową w Browser Automation Studio (BAS) z użyciem mobilnych proxy. Krok po kroku skonfigurujemy środowisko, podłączymy mobilne proxy, stworzymy scenariusz wielowątkowy i sprawdzimy wyniki. Na koniec otrzymasz gotowy projekt BAS, który działa w wielu wątkach, wykorzystuje unikalne mobilne IP dla każdego wątku, poprawnie loguje działania i potrafi odzyskać sprawność po sytuacjach awaryjnych. Dokładnie omówimy każde działanie, aby zminimalizować ryzyko błędów i zaoszczędzić Twój czas.

Materiał skierowany jest do początkujących, z elementami dla bardziej zaawansowanych użytkowników. Jeśli nigdy nie pracowałeś z BAS, będziesz mógł powtórzyć wszystkie kroki dzięki szczegółowym instrukcjom. Jeśli masz już podstawową wiedzę o automatyzacji, znajdziesz gotowe praktyki optymalizacji wielowątkowości, bezpiecznej pracy z mobilnymi proxy oraz niezawodnego przetwarzania błędów.

Przed rozpoczęciem warto znać podstawy obsługi komputera, umieć instalować programy oraz rozumieć podstawowe terminy takie jak „proxy”, „wątek”, „timeout”. Nie są wymagane żadne skomplikowane umiejętności programowania: cały proces oparty jest na wizualnych blokach BAS, klarownych ustawieniach i kontrolach.

Na wykonanie wszystkich kroków poświęć od 2 do 4 godzin. Więcej czasu zajmie, jeśli instalujesz narzędzia i konfigurujesz mobilne proxy po raz pierwszy. Ale po początkowej konfiguracji będziesz mógł szybko skalować scenariusze i uruchamiać je na różnych maszynach.

Wskazówka: Jeśli chcesz od razu przejść do konfiguracji proxy, skorzystaj z wewnętrznego linku do sekcji „Krok 3: Podłączenie i konfiguracja mobilnych proxy w BAS” — zobacz poniżej. Jeśli interesują Cię problemy i ich rozwiązania, przejdź do sekcji „Typowe błędy i rozwiązania” — zobacz poniżej.

Przygotowanie wstępne

Aby osiągnąć sukces, potrzebujesz kilku niezbędnych narzędzi i przygotowań. Postępuj zgodnie z listą, aby niczego nie przeoczyć. Tutaj także podamy wymagania systemowe oraz wyjaśnimy, co należy pobrać i jak prawidłowo zainstalować.

Niezbędne narzędzia, programy i dostęp

  • Komputer z systemem Windows 10 lub nowszym. BAS oficjalnie jest przeznaczony dla Windows; uruchamianie na Linuxie przez zgodność jest możliwe, ale w ramach tego przewodnika nie jest omawiane.
  • Aktualna wersja Browser Automation Studio (BAS) z 2026 roku. Należy ją pobrać i zainstalować.
  • Konto u dostawcy mobilnych proxy. Odpowiedni będą różni dostawcy; na przykład często używane mobilne proxy z elastyczną rotacją, takie jak mobileproxy.space.
  • Edytor tekstu do zapisów (np. standardowy „Notatnik”) oraz arkusz kalkulacyjny (np. Excel) do przechowywania danych proxy i loginów.
  • Wolne miejsce na dysku min. 5 GB do instalacji BAS, danych tymczasowych i logów.

Wymagania systemowe

  • System operacyjny: Windows 10/11 (64-bit).
  • Pamięć RAM: od 8 GB (zalecane 16 GB i więcej dla intensywnej wielowątkowości).
  • Procesor: 4+ rdzeni (zalecane 6–8+ rdzeni dla stabilnej wielowątkowości).
  • Wolne miejsce na dysku: minimum 5 GB.
  • Stabilne połączenie internetowe: od 20 Mbit/s, niskie opóźnienia są preferowane.

Co należy pobrać, zainstalować i skonfigurować

  1. Pobierz Installer-pakiet BAS z oficjalnego źródła dewelopera. Upewnij się, że wersja jest aktualna (2026) i odpowiednia dla twojego systemu operacyjnego.
  2. Zainstaluj BAS, postępując zgodnie z standardowym kreatorem instalacji: przyciski „Dalej”, „Zgadzam się”, „Zainstaluj”. Uruchom BAS po zakończeniu instalacji.
  3. Uzyskaj dostęp do mobilnych proxy u swojego dostawcy. Upewnij się, że masz IP/domenę, port, typ autoryzacji (login/hasło lub przez adres IP), a także dokumentację dotyczącą zmiany IP (rotacja).
  4. Stwórz folder na projekt BAS, logi i kopie zapasowe. Przykład: C:\BAS\Projects\MobileProxyMultithread.
  5. Przygotuj plik CSV z danymi testowymi (jeśli skrypt tego wymaga), na przykład listę adresów URL do odwiedzenia. Przykład pliku: urls.csv z wpisami formatu https://example.org/test1, https://example.org/test2.

Tworzenie kopii zapasowych

Kopie zapasowe pozwalają szybko wrócić do stanu roboczego, jeśli coś pójdzie nie tak.

  • Stwórz kopię zainstalowanego folderu projektu BAS po każdej większej zmianie: dodałeś proxy — zrób kopię zapasową; dodałeś wielowątkowość — zrób kopię zapasową.
  • Przechowuj kopie w podfolderach z datą: C:\BAS\Backups\2026-06-xx\.
  • Pliki skryptu BAS (.xml) i zasoby (CSV, JSON, logotypy) również dubluj w oddzielnej folderze „Backup_Resources”.

⚠️ Uwaga: Jeśli uruchamiasz skrypty na komputerze roboczym, upewnij się, że program antywirusowy nie blokuje działalności BAS. Dodaj folder BAS do wyjątków, jeśli to konieczne. Przed tym upewnij się o bezpieczeństwie źródeł.

✅ Sprawdzenie: Masz zainstalowane BAS, aktywny dostęp do mobilnych proxy (login/hasło lub autoryzacja przez IP), utworzoną strukturę folderów dla projektu i kopii zapasowych, przygotowane dane testowe.

Podstawowe pojęcia

Przed konfiguracją przejdźmy do teorii na poziomie praktycznym. Jasne zrozumienie terminów zaoszczędzi czas w kolejnych krokach.

Co to jest BAS w prostych słowach

Browser Automation Studio — to wizualne narzędzie do automatyzacji działań w przeglądarce. Tworzysz skrypt z bloków, jak z konstruktor. Każde działanie to blok: „Otwórz URL”, „Kliknij”, „Wprowadź tekst”, „Zmień proxy”, „Uruchom w wątku” i tak dalej. BAS nie wymaga głębokiej znajomości programowania. Jednak daje elastyczność i umożliwia rozwiązanie zarówno prostych, jak i skomplikowanych zadań: parsowanie, sprawdzanie formularzy, monitoring, praca z kontami, testy.

Proxy i mobilne proxy

Proxy to pośredni serwer między Twoim komputerem a stroną, do której się odwołujesz. Kiedy używasz proxy, strona widzi IP proxy, a nie Twoje własne. Mobilne proxy to proxy dostarczane przez sieci komórkowe (3G/4G/5G), więc ich adresy IP mają „mobilny” zbiór. To przydatne do zwiększenia zaufania do ruchu i zmniejszenia fałszywych blokad, jeśli zadania są wykonywane poprawnie i zgodnie z prawem. U różnych dostawców dostępne są funkcje zmiany IP (rotacji) na timerze lub na żądanie. Jako przykład dostawcy możesz rozważyć mobileproxy.space, gdzie dostępna jest wygodna rotacja i różne punkty wyjścia.

Wielowątkowość

Wielowątkowość w BAS to jednoczesne uruchamianie kilku kopii tego samego skryptu. Każdy wątek działa niezależnie: z własnymi danymi, proxy i logami. To pozwala przyspieszyć wykonanie jednorodnych działań. Ważne jest, aby poprawnie dzielić zasoby: wyznaczać unikalne proxy dla każdego wątku, konfigurować timeouty, kolejki i limity, aby uniknąć konfliktów i przeciążeń.

Co ważne zrozumieć przed rozpoczęciem

  • Jeden wątek — jedno proxy. To podstawowa zasada dla stabilności i minimalizacji przecięć.
  • Rotacja IP powinna być przewidywalna. Ustawiaj zmianę IP w bezpiecznych odstępach czasu i tylko w razie potrzeby, aby nie wzbudzać zbędnych podejrzeń na stronach.
  • Logi i raporty — Twoi najlepsi przyjaciele. Zapisuj kluczowe zdarzenia i błędy. To bardzo ułatwia debugowanie.
  • Każda automatyzacja powinna być zgodna z prawami i zasadami korzystania z celowych stron internetowych. Pracuj tylko z dozwolonymi zadaniami i danymi.

Wskazówka: Jeśli po raz pierwszy konfigurujesz mobilne proxy, zacznij od 1–2 wątków. Gdy upewnisz się o stabilności, przechodź do 5, 10 i więcej. Dzięki temu dokładnie zrozumiesz limity swojej maszyny i proxy.

✅ Sprawdzenie: Rozumiesz, że każdy wątek działa z osobnym proxy, po co potrzebna jest rotacja i dlaczego ważne jest logowanie zdarzeń. Jesteś gotowy do instalacji i budowy projektu.

Krok 1: Instalacja i pierwszy start BAS

Cel etapu

Zainstalować i poprawnie uruchomić aktualną wersję BAS, upewnić się, że interfejs i podstawowe funkcje działają.

Krok po kroku

  1. Otwórz instalator BAS i postępuj zgodnie z krokami kreatora („Dalej”, „Zgadzam się”, „Zainstaluj”).
  2. Uruchom BAS. Na pierwszym ekranie zobaczysz główne okno z menu, listą projektów, panelem działań i konsolą logów.
  3. Stwórz folder projektu: C:\BAS\Projects\MobileProxyMultithread. W BAS w menu „Plik” wybierz „Zapisz projekt jako…” i zapisz pusty projekt jako MobileProxyMultithread.xml w podanym folderze.
  4. Otwórz sekcję z działaniami (po lewej). Znajdź bloki „Przeglądarka”, „Sieć”, „Przepływ” — będą nam potrzebne później.
  5. Sprawdź działanie modułu przeglądarki: dodaj blok „Otwórz URL” i podaj https://example.org. Naciśnij „Uruchom”. Upewnij się, że BAS otwiera wbudowaną przeglądarkę i ładuje stronę.

Ważne punkty

  • Nie zamykaj okna przeglądarki podczas testowego uruchomienia. To część procesu.
  • Jeśli strona się nie otwiera, sprawdź połączenie internetowe i ustawienia zapory.

Oczekiwany wynik

Strona została pomyślnie załadowana, w logach nie ma krytycznych błędów, projekt został zapisany w wybranym folderze.

Możliwe problemy i rozwiązania

  • Problem: BAS nie uruchamia się. Przyczyna: blokada przez program antywirusowy. Rozwiązanie: dodaj BAS do wyjątków.
  • Problem: testowa strona się nie otwiera. Przyczyna: ograniczenia sieciowe. Rozwiązanie: sprawdź dostęp do internetu i ustawienia proxy w systemie operacyjnym (na etapie testu nie są potrzebne).

✅ Sprawdzenie: W oknie BAS widzisz załadowaną stronę i zielone statusy w logach. Plik projektu MobileProxyMultithread.xml został zapisany.

Krok 2: Struktura projektu i zasoby

Cel etapu

Stworzyć czytelną strukturę projektu BAS z zasobami (pliki danych, logi, wyniki), aby łatwo było później skalować i utrzymywać.

Krok po kroku

  1. W folderze projektu utwórz podfoldery: data, logs, output, backups.
  2. Stwórz plik data\urls.csv z 5–10 testowymi adresami. Format: jeden URL w lini. Na przykład: https://httpbin.org/ip, https://example.org.
  3. W BAS dodaj „Zasób” do odczytu pliku urls.csv: w sekcji „Zasoby” kliknij „Dodaj zasób”, wybierz typ „Plik”, podaj ścieżkę do data\urls.csv, tryb „Line by line” (po liniach).
  4. Dodaj blok „Załaduj z zasobu” do odczytu URL z zasobu do zmiennej, na przykład url_current.
  5. Dodaj blok „Log” i wyświetl wartość {{url_current}} dla kontroli.
  6. Zapisz projekt (Ctrl+S).

Ważne punkty

  • Każdy zasób nazywaj zrozumiale: res_urls, res_accounts itd. To ułatwi późniejsze utrzymanie.
  • Jeśli planujesz kilka skryptów, trzymaj zasoby w oddzielnych folderach według zadań.

Oczekiwany wynik

Projekt odczytuje po linie z pliku urls.csv, zapisuje wartość w logu i przygotowuje się do otwierania stron według listy.

Możliwe problemy i rozwiązania

  • Problem: błąd odczytu pliku. Przyczyna: nieprawidłowa ścieżka lub kodowanie. Rozwiązanie: sprawdź ścieżkę i użyj UTF-8 bez BOM.
  • Problem: zasób nie przełącza linii. Przyczyna: niewłaściwie ustawiony tryb. Rozwiązanie: ustaw „Line by line” i włącz autoinkrementację.

✅ Sprawdzenie: Podczas uruchomienia widzisz w logach linie z urls.csv i wartość zmiennej url_current.

Krok 3: Podłączenie i konfiguracja mobilnych proxy w BAS

Cel etapu

Podłączyć mobilne proxy do projektu BAS tak, aby każdy wątek używał własnego IP. Skonfigurować bezpieczną rotację i kontrolę połączenia.

Krok po kroku

  1. Określ format dostępu do proxy. Zazwyczaj jest to jeden z wariantów: http(s)://user:pass@host:port lub socks5://user:pass@host:port. Jeśli autoryzacja przez IP, upewnij się, że Twój zewnętrzny IP jest dodany do białej listy u dostawcy.
  2. Przygotuj listę proxy. Utwórz plik data\proxies.csv, w którym każdy wiersz to jedno proxy. Przykład: http://user1:pass1@mp1.example.net:3000, http://user2:pass2@mp2.example.net:3000. Jeśli korzystasz z mobileproxy.space, wskaż otrzymane hosty i porty w tym formacie.
  3. W BAS stwórz zasób res_proxies do odczytu z data\proxies.csv. Tryb „Line by line”.
  4. Przed otwarciem przeglądarki dodaj blok „Ustaw proxy” z sekcji „Sieć” lub „Przeglądarka/Proxy”. W polu proxy podaj zmienną odczytaną z zasobu, na przykład {{proxy_current}}.
  5. Dodaj blok „Żądanie HTTP” lub „Otwórz URL” do usługi sprawdzania IP, np. https://httpbin.org/ip. Celem jest upewnienie się, że ruch przechodzi przez proxy. Wyświetl odpowiedź w logu i sprawdź, czy IP różni się od Twojego rzeczywistego.
  6. Rotacja IP. Jeśli Twój dostawca udostępnia API do zmiany IP (co często ma miejsce u mobilnych dostawców), stwórz oddzielny blok „Żądanie HTTP” do wywołania rotacji. Nie wywołuj rotacji zbyt często. Zaleca się wykonywać ją: a) przy starcie wątku, b) przy konkretnym błędzie połączenia, c) w bezpiecznym odstępie czasu (na przykład 10–20 minut), jeśli dokumentacja dostawcy na to pozwala.
  7. Dodaj kontrolę wyniku po rotacji. Ponownie wywołaj sprawdzenie IP i upewnij się, że się zmienił, jeśli rotacja została zainicjowana.
  8. Zapisz projekt (Ctrl+S) i zrób kopię zapasową w folderze backups z datą.

Ważne punkty

  • Jeden wątek — jedno proxy. Nie dziel jednego proxy między wątki. To zmniejsza stabilność i utrudnia debugowanie.
  • Nie przekraczaj limitów rotacji. Sprawdzaj u dostawcy dopuszczalną częstotliwość. Nadmierna rotacja może prowadzić do błędów.
  • Logi połączenia są obowiązkowe. Zawsze zapisuj, jakie proxy zostało przydzielone wątkowi i jaki IP został określony po sprawdzeniu.

Wskazówka: Jeśli używasz mobileproxy.space, skonfiguruj oddzielne punkty końcowe rotacji dla każdego modemu/gniazda, aby zarządzać zmianą IP adresowo i nie ingerować w inne wątki.

Wskazówka: Przy autoryzacji przez IP regularnie sprawdzaj aktualny zewnętrzny IP Twojej maszyny. Przy zmianie sieci zaktualizuj białą listę u dostawcy.

Oczekiwany wynik

Projekt przechwytuje proxy z pliku, ustawia je przed uruchomieniem przeglądarki, pomyślnie przechodzi test IP i potrafi wywołać rotację w razie potrzeby.

Możliwe problemy i rozwiązania

  • Problem: „Wymagana autoryzacja proxy”. Przyczyna: nieprawidłowy login/hasło. Rozwiązanie: sprawdź dane logowania i format wiersza w proxies.csv.
  • Problem: IP nie zmienia się po rotacji. Przyczyna: zbyt częste zgłoszenia lub opóźnienie u dostawcy. Rozwiązanie: poczekaj 30–120 sekund, zwiększ odstęp rotacji.
  • Problem: niestabilne połączenie. Przyczyna: słaby sygnał modemu u dostawcy. Rozwiązanie: przełącz punkt wyjścia lub użyj innego gniazda u mobilnego dostawcy.

✅ Sprawdzenie: W logach widzisz przydzielone wątkowi proxy, pomyślne załadowanie strony kontrolnej IP i prawidłowo zmieniające się IP przy rotacji. Nie ma błędów autoryzacji.

Krok 4: Podstawowa wielowątkowość — szablon uruchomienia

Cel etapu

Skonfigurować w BAS wielowątkowe uruchomienie z izolacją zasobów: każdy wątek — swoja linia z proxies.csv i swój zestaw URL.

Krok po kroku

  1. Określ liczbę wątków do testu. Zacznij od 2–3 wątków.
  2. Dodaj do projektu bloki „Wątki” lub użyj „Uruchom w wątkach” (zależy od wersji interfejsu). Podaj zmienną threads_count, domyślnie 3.
  3. Utwórz zasób res_proxies z trybem „Weź linię i zablokuj”, jeśli dostępne, lub ręcznie zorganizuj przydział linii według indeksu, aby każdy wątek otrzymał unikalną linię. Alternatywa: użyj „Weź linię” z automatycznym przejściem do następnej linii i blokowaniem.
  4. Dla danych URL stwórz niezależne rozdzielenie: jeśli chcesz, aby wątki brały różne URL, użyj oddzielnego zasobu res_urls z „Weź linię” i blokowaniem. Jeśli każdy wątek ma przejść ten sam zbiór, pracuj z kopią tablicy w pamięci.
  5. Wewnątrz ciała wątku ustaw proxy z unikalnej linii res_proxies, wykonaj kontrolę IP, następnie pętla po URL: otwórz stronę, poczekaj na załadowanie, zapisuj status w logu.
  6. Dodaj timeouty i opóźnienia. Między otwieraniem stron używaj „Sleep” 2–5 sekund, aby zredukować piki obciążenia i uniknąć nadmiernych podejrzeń po stronie stron.
  7. Zapisuj logi według wątków. W nazwie pliku loga użyj zmiennej wątku, np. logs\thread_{{thread_id}}.log, aby łatwiej debugować.
  8. Zapisz projekt i uruchom w 3 wątkach do testów.

Ważne punkty

  • Izolacja zasobów jest krytyczna. Upewnij się, że dwa wątki nie biorą tej samej linii z proxies.csv jednocześnie.
  • Stabilizuj opóźnienia. Im większa liczba wątków, tym większe ryzyko kolizji w sieci. Umiarkowane opóźnienia zwiększają stabilność.

Wskazówka: Rozpocznij test od 1 wątku, następnie 2, potem 3. Na każdym etapie sprawdzaj logi i zużycie zasobów (CPU, RAM, sieć). To ochroni przed nagłymi awariami podczas skalowania.

Wskazówka: Nazwij wątek, aby zawierał numer i krótkie przeznaczenie, na przykład „T3_Parse”. To przydatne przy rozpatrywaniu logów.

Oczekiwany wynik

Scenariusz uruchamia się równolegle w kilku wątkach. Każdy wątek bierze swoje proxy i przetwarza swoją porcję URL bez konfliktów. Logi są zapisywane oddzielnie.

Możliwe problemy i rozwiązania

  • Problem: dwa wątki otrzymały jedno proxy. Przyczyna: brak zablokowania zasobu. Rozwiązanie: włącz tryb blokowania linii przy przydziale.
  • Problem: wątki „zawieszają się”. Przyczyna: zbyt surowe timeouty. Rozwiązanie: zwiększ timeouty ładowania stron i zapytań sieciowych.

✅ Sprawdzenie: W folderze logs pojawiły się raporty dla każdego wątku. W logach widać prawidłowe przypisanie unikalnego proxy i poprawną sekwencję działań.

Krok 5: Logika scenariusza i niezawodne przetwarzanie błędów

Cel etapu

Wprowadzić do projektu odporność: ponowne uruchomienia w przypadku niepowodzenia, przetwarzanie błędów sieciowych, rozsądne powtórzenia i powiadomienia.

Krok po kroku

  1. Wewnątrz ciała wątku dodaj blok „Try/Catch” (lub podobny mechanizm BAS). Obejmij kluczowe operacje: ustawienie proxy, kontrola IP, otwieranie URL.
  2. W bloku „Catch” zapisz szczegółowy log: nazwę wątku, krok, tekst błędu. Zastosuj działanie „Sleep 5–15 sekund” przed powtórzeniem.
  3. Zrealizuj licznik powtórzeń: zmienną retries z limitem 2–3. Po przekroczeniu limitu — zarejestruj odmowę i przejdź do następnego zadania, aby wątek się nie zatrzymał.
  4. Na błędy sieciowe (np. proxy nie odpowiada) dodaj alternatywną trasę: zmiana IP przez rotację (jeśli to dozwolone) i ponowna kontrola IP. Dopiero potem powtórz główne działanie.
  5. Jeśli strona odpowiada zbyt wolno, użyj „Wait For” z dłuższym timeoutem i pośrednią kontrolą gotowości DOM. Bezduszna zmiana timeoutów bez kontroli może spowolnić wątki, dlatego łącz „Wait For Element” z rozsądnymi limitami.
  6. Loguj konkretne kody i metryki: status odpowiedzi HTTP, czas ładowania. Zapisuj je do pliku z oznaczonym czasem.
  7. Zapisz projekt i przetestuj: sztucznie podaj jeden nieprawidłowy proxy w data\proxies.csv i upewnij się, że przetwarzanie błędów działa poprawnie.

Ważne punkty

  • Nie zapętlaj się w nieskończoność. Ogranicz liczbę powtórzeń, w przeciwnym razie możesz na długo zablokować się na jednym URL.
  • Segreguj błędy. Błąd sieciowy — jedna akcja (zmienić IP, powtórzyć), błąd biznesowy skryptu — inna (pominąć i przejść dalej).

Wskazówka: Dodaj do logów „poziomy”: INFO dla zwykłych zdarzeń, WARNING dla nietypowych sytuacji, ERROR dla krytycznych awarii. To pomoże szybciej znaleźć potrzebne fragmenty.

Wskazówka: Zapisuj zrzuty ekranu tylko w ważnych błędach, aby nie obciążać dysku. Ścieżka, na przykład: logs\screenshots\thread_{{thread_id}}_{{timestamp}}.png.

Oczekiwany wynik

Scenariusz jest stabilny: przy błędach sieciowych wznawia kroki, a przy przekroczeniu limitu ponownie kończy przetwarzanie aktualnego elementu i przechodzi do następnego. Logi są informacyjne.

Możliwe problemy i rozwiązania

  • Problem: nadmierne powtórzenia. Przyczyna: nie rozróżniasz typów błędów. Rozwiązanie: warunek na kody odpowiedzi i typ wyjątków, różne zachowania.
  • Problem: przepełnienie logów. Przyczyna: zbyt szczegółowe wpisy. Rozwiązanie: zmniejsz szczegółowość dla INFO, zostaw szczegóły dla błędów.

✅ Sprawdzenie: Podczas testów z nieprawidłowym proxy i „wolnymi” URL, scenariusz nie gubi się całkowicie, ale odzyskuje i idzie dalej.

Krok 6: Logowanie, raporty, zapisywanie postępów

Cel etapu

Skonfigurować przemyślane logowanie, aby szybko zrozumieć, co robi każdy wątek i dlaczego. Ustawić zapisywanie wyników i kontrolę postępu.

Krok po kroku

  1. Dodaj ogólny plik logów dla podsumowujących zdarzeń: logs\main.log. Pisz wpisy dotyczące startu/stopu skryptu, liczby wątków, nagłówków etapów.
  2. Dla każdego wątku loguj oddzielny plik: logs\thread_{{thread_id}}.log. Zapisuj tam wartości proxy, IP po kontroli, każdy celowy URL i wynik operacji.
  3. Stwórz plik wyników output\results.csv. Format linii: timestamp;thread_id;proxy;ip;url;status;elapsed_ms. Po zakończeniu przetwarzania każdego URL dodawaj linię przez „Dodaj do pliku”.
  4. Zapisuj postęp w przypadku awarii BAS: okresowo zapisuj w pliku output\checkpoint.json aktualne indeksy zasobów (który URL został przetworzony, który następny). To uprości ponowne uruchomienie z odpowiedniego miejsca.
  5. Dodaj końcowy raport: po zakończeniu wszystkich wątków wykonaj podsumowanie w main.log z liczbą pomyślnie przetworzonych URL i liczbą błędów.

Ważne punkty

  • Struktura logów powinna być powtarzalna. Jednolity format linii z tymi samymi polami ułatwia analizę.
  • Chroń dysk. Rotuj logi: przenoś stare pliki do folderu archiwum lub usuwaj je według wieku.

Wskazówka: Użyj prefiksów według dat w nazwach logów: logs\2026-06-22\thread_3.log. To uporządkuje przechowywanie i przyspieszy wyszukiwanie.

Wskazówka: Na etapie debugowania włącz rozszerzony poziom logowania. W trybie produkcyjnym przełącz się na standardowy, aby zmniejszyć obciążenie.

Oczekiwany wynik

Masz jasny obraz działania: kto, kiedy, z jakim proxy i IP przetworzył jaki URL i z jakim rezultatem. W przypadku awarii można zrozumieć przyczyny i szybko się odbudować.

Możliwe problemy i rozwiązania

  • Problem: logi przeszkadzają w działaniu z powodu dużej objętości. Przyczyna: zbyt szczegółowe zapisy. Rozwiązanie: zmniejsz szczegółowość i włącz rotację.
  • Problem: niespójne formaty w różnych wątkach. Przyczyna: logika zapisu rozmyta. Rozwiązanie: wydziel oddzielny moduł zapisu logów i użyj go wszędzie.

✅ Sprawdzenie: W folderach logs i output pojawiły się pliki z jasnymi liniami. Można przefiltrować zdarzenia według thread_id i szybko znaleźć nieudane zapytania.

Krok 7: Przykład scenariusza — odwiedzanie stron i zbieranie podstawowych metryk

Cel etapu

Zebrać minimalnie wykonalny scenariusz (MVP), który w trybie wielowątkowym odwiedza listę stron, sprawdza odpowiedź, rejestruje czas ładowania i zwraca wynik. Ten krok stanowi podstawę do Twoich własnych zadań.

Krok po kroku

  1. Inicjalizacja wątku: odczytaj unikalne proxy z res_proxies i ustaw je. Wykonaj kontrolę IP i zapisz w logu ip_current.
  2. Odczyt kolejnego URL: odczytaj linię z res_urls, zapisz w zmiennej url_current. Jeśli linie się skończą, poprawnie zakończ wątek.
  3. Otwórz blok przeglądarki „Otwórz URL” z url_current. Ustaw timeout, na przykład 30000 ms. Przed otwarciem dodaj znacznik czasu t_start.
  4. Poczekaj na kluczowy element strony z „Wait For Element” (jeśli wiadomo, że jest stabilny). W przeciwnym razie użyj ogólnego „Wait Document Loaded” z timeoutem.
  5. Zarejestruj znacznik t_end i oblicz elapsed_ms = t_end – t_start. Zapisz wynik w output\results.csv.
  6. W przypadku błędu ładowania wykonaj logikę z Kroku 5: do 2 powtórzeń, przy błędach sieciowych - opcjonalna rotacja, a potem powtórz. W przypadku niepowodzenia po limicie — zapis status=failed i przejście do następnego URL.
  7. Zorganizuj pętlę po URL: po zapisaniu wyniku przechodź do następnej linii zasobu res_urls, aż do wyczerpania.
  8. Po zakończeniu wątku zapisz końcowy wpis w thread_{{thread_id}}.log z końcową statystyką.

Ważne punkty

  • Określ jasne kryteria sukcesu. Na przykład, status success — jeśli strona załadowała się w ciągu 30 sekund i element został znaleziony.
  • Dbaj o bezpieczeństwo. Nie wykonuj żadnych działań, które naruszają zasady celowych stron internetowych lub prawo. Scenariusz powinien być etyczny i przejrzysty.

Wskazówka: Jeśli analizujesz publiczne strony, dodaj „User-Agent” i „Accept-Language” do ustawień przeglądarki BAS, aby ruch wyglądał naturalnie. Nie zmieniaj ich zbyt często bez potrzeby.

Wskazówka: Podziel listę URL na tematyczne grupy i przydziel każdemu wątkowi swoją grupę. To ułatwi analizę wyników i buforowanie.

Oczekiwany wynik

Scenariusz przegląda listę URL w wielu wątkach, rejestruje czas ładowania i statusy, zapisuje logi i poprawnie kończy wątki.

Możliwe problemy i rozwiązania

  • Problem: część stron ładowanych zbyt długo. Przyczyna: przeciążenie lub nieoptymalne timeouty. Rozwiązanie: zwiększ nieznacznie timeouty i dodaj „Wait For Element” według stabilnego selektora.
  • Problem: metryki nie są zapisywane. Przyczyna: błąd obliczenia lub nieprawidłowe zmienne. Rozwiązanie: loguj t_start i t_end, upewnij się, że czas bierzesz w tym samym formacie.

✅ Sprawdzenie: W results.csv pojawiają się linie z różnymi URL, rzeczywistymi IP wątków, statusami i czasem ładowania. Logi odpowiadają każdemu wątkowi.

Krok 8: Optymalizacja wielowątkowości i pracy z mobilnymi proxy

Cel etapu

Zwiększyć stabilność i wydajność projektu: płynnie skalować liczbę wątków i mądrze przydzielać proxy.

Krok po kroku

  1. Przeprowadź test obciążeniowy: zwiększaj wątki z 3 do 5, następnie do 7–10. Na każdym kroku rejestruj CPU, RAM, obciążenie sieci i procent błędów.
  2. Sprawdzaj jakość mobilnych proxy: okresowo uruchamiaj krótki skrypt sprawdzający IP i opóźnienia (ping/opóźnienie przez dostępne źródła). Jeśli konkretne proxy generuje więcej błędów, tymczasowo wyklucz je z res_proxies.
  3. Zorganizuj „pule” proxy: szybkie, średnie, wolne. Przydzielaj wątkowi proxy z odpowiedniej puli w zależności od krytyczności zadania.
  4. Synchronizuj rotację z czasem trwania zadań: jeśli jedno zadanie trwa średnio 3–5 minut, nie należy ustawiać rotacji częściej niż co 7–10 minut, jeśli to nie jest wymagane.
  5. Skonfiguruj automatyczne „zdrowie” wątku: jeśli wątek z rzędu otrzymał 3 błędy sieciowe, zmień proxy i zrób przerwę 60–120 sekund.
  6. Oceń limity dostawcy mobilnych proxy: ile jednoczesnych połączeń jest wspieranych, jak szybko dostępna jest rotacja. Na przykład, u dostawców takich jak mobileproxy.space często dostępna jest elastyczna rotacja i jasne limity — przestrzegaj ich.

Ważne punkty

  • Równoważ między szybkością a niezawodnością. Zbyt wiele wątków może pogorszyć ogólną skuteczność.
  • Nie twórz nagłych szczytów. Skaluj stopniowo, kontrolując metryki.

Wskazówka: Wprowadź metrykę „skuteczność za 10 minut” dla każdego wątku. Jeśli spada poniżej progu, automatycznie przełącz wątek na inny zbiornik proxy.

Wskazówka: Zachowaj czarną listę „złych” kombinacji strona-proxy. Jeśli konkretna strona często odmawia przez ten sam proxy, nie używaj tej pary ponownie.

Oczekiwany wynik

Zwiększenie liczby wątków nie łamie scenariusza. Procent błędów jest stabilny lub spada dzięki zarządzaniu pulami i rotacją. System przewidywalnie reaguje na degradację jakości proxy.

Możliwe problemy i rozwiązania

  • Problem: przy wzroście wątków rośnie liczba błędów timeoutów. Przyczyna: niedobór zasobów. Rozwiązanie: zmniejsz liczbę wątków, zwiększ zasoby sprzętowe, optymalizuj opóźnienia.
  • Problem: zbyt częsta rotacja nie daje stabilnego IP. Przyczyna: agresywne odstępy. Rozwiązanie: zwiększ odstępy i używaj rotacji tylko w przypadku zdarzeń.

✅ Sprawdzenie: Przy zwiększeniu wątków do docelowej liczby testy obciążeniowe pokazują stabilną skuteczność, a logi nie bywają przepełnione powtarzającymi się błędami sieciowymi.

Krok 9: Finalne złożenie, uruchomienie i przenośność

Cel etapu

Zakończyć projekt: połączyć wszystkie bloki, stworzyć parametry konfiguracyjne, przygotować przenośność do innej maszyny.

Krok po kroku

  1. Wydziel konfigurację w parametrach: threads_count, timeouts, retry_limits, proxy_rotation_interval. W BAS użyj „Zmiennych” i „Ustawień” (jeśli dostępne) do centralnego przechowywania.
  2. Stwórz skrypt główny: bloki inicjalizacji logów, załadunku zasobów, startu wątków i końcowego raportu ułóż w sposób sekwencyjny i dodaj komentarze.
  3. Sprawdź ścieżki: użyj ścieżek względnych (względem folderu projektu), aby przenośność była prostsza. Na przykład, data\proxies.csv zamiast C:\BAS\Projects\….
  4. Utwórz „czystą” kopię folderu projektu: bez zbędnych logów i plików tymczasowych. Umieść ją w backups\release_YYYYMMDD.
  5. Przetestuj przenoszenie na inny komputer: skopiuj folder, otwórz projekt w BAS, uruchom z 1–2 wątkami, sprawdź działanie proxy i logów.
  6. Udokumentuj instrukcję uruchamiania: krótki README.txt w głównym folderze projektu z opisem parametrów, wymagań i procedur aktualizacji listy proxy.

Ważne punkty

  • Konfiguracja — poza kodem. Im mniej „wbudowane” w bloki, tym łatwiej zmieniać zachowanie bez edytowania skryptu.
  • Testuj przenośność wcześniej. Nie czekaj, aż projekt będzie potrzebny na innej maszynie.

⚠️ Uwaga: Przed przeniesieniem upewnij się, że w projekcie nie są przechowywane hasła w formie jawnej. Użyj bezpiecznych zmiennych BAS, jeśli to możliwe, i dostępów tylko w ramach wymaganych praw.

Wskazówka: Do wymiany projektów w zespole używaj archiwów z haszami i kontrolnym wykazem plików. To pomoże uniknąć przypadkowych pominięć.

Oczekiwany wynik

Gotowy do uruchomienia projekt z przejrzystymi ustawieniami, wygodną strukturą i możliwością przeniesienia na inną maszynę bez potrzeby „naprawiania ścieżek”.

Możliwe problemy i rozwiązania

  • Problem: na nowym komputerze nie można odczytać zasobów. Przyczyna: absolutne ścieżki. Rozwiązanie: przełącz się na względne ścieżki i dostosuj strukturę folderów.
  • Problem: brak dostępu do proxy. Przyczyna: autoryzacja przez IP, brak białej listy. Rozwiązanie: dodaj IP nowego komputera do białej listy u dostawcy mobilnych proxy.

✅ Sprawdzenie: Projekt uruchamia się poprawnie na innej maszynie, widzi zasoby, łączy się z mobilnymi proxy, formuje logi i wyniki.

Sprawdzenie wyników

Lista kontrolna

  • BAS zainstalowane i uruchamia się bez błędów.
  • Struktura projektu stworzona, zasoby odczytywane poprawnie.
  • Mobilne proxy podłączone, IP sprawdzane i odpowiadające wątkowi.
  • Wielowątkowość działa: 2–3+ wątki przetwarzają dane równolegle.
  • Logi i wyniki zapisywane w oddzielnych plikach, format jednolity.
  • Przetwarzanie błędów i powtórzeń skonfigurowane i przewidywalne.
  • Projekt przenośny na inną maszynę.

Jak testować

  1. Uruchom 1 wątek z 3 URL, sprawdź log i results.csv.
  2. Zwiększ do 3 wątków, sprawdź unikalność proxy i zgodność IP z wątkiem.
  3. Sztucznie dodaj 1 nieprzydatne proxy, sprawdź, jak zadziałały powtórzenia i logi błędów.
  4. Uruchom na innej maszynie (jeśli dostępne) i powtórz test.

Wskaźniki sukcesu

  • Procent udanych prób stabilny (na przykład 95%+ na testowych stronach).
  • Brak kolizji proxy między wątkami.
  • Logi zrozumiałe, po nich można odtworzyć bieg wydarzeń.
  • Czas wykonania scenariusza skraca się proporcjonalnie do liczby wątków.

Typowe błędy i rozwiązania

  • Problem: „Wymagana autoryzacja proxy”. Przyczyna: nieprawidłowe dane logowania. Rozwiązanie: sprawdź login/hasło i format wiersza w proxies.csv.
  • Problem: Dwa wątki otrzymały jedno i to samo proxy. Przyczyna: zasób bez blokady. Rozwiązanie: włącz „Weź i zablokuj” lub analogiczną funkcję blokowania linii.
  • Problem: IP nie zmienia się po rotacji. Przyczyna: zbyt częste zgłoszenia rotacji lub opóźnienie u dostawcy. Rozwiązanie: zwiększ odstęp, odczekaj 30–120 sekund po zgłoszeniu, sprawdź zasady rotacji.
  • Problem: Wątki zawieszają się podczas ładowania stron. Przyczyna: nieoptymalne timeouty lub ciężka strona. Rozwiązanie: zwiększ timeout, użyj „Wait For Element”, dodaj rozsądne przerwy.
  • Problem: Nagły wzrost błędów przy zwiększeniu wątków. Przyczyna: niedobór zasobów CPU/RAM/sieci. Rozwiązanie: zmniejsz liczbę wątków, optymalizuj skrypt, dodaj zasoby.
  • Problem: Logi przepełniają dysk. Przyczyna: wysoki poziom szczegółowości. Rozwiązanie: włącz rotację logów, zmniejsz poziom logowania w produkcji.
  • Problem: Nie można przenieść projektu. Przyczyna: absolutne ścieżki. Rozwiązanie: używaj ścieżek względnych i jednolitej struktury folderów.
  • Problem: Błędy dostępu do proxy na innej maszynie. Przyczyna: autoryzacja przez IP, brak białej listy. Rozwiązanie: dodaj IP nowego komputera u dostawcy mobilnych proxy.

Dodatkowe możliwości

Zaawansowane ustawienia

  • Dynamika pul proxy: trzymaj oddzielne CSV dla różnych regionów lub zadań i przełączaj się między nimi zgodnie z warunkami.
  • Zaawansowana orkiestracja wątków: na poziomie BAS można budować kolejki zadań, priorytetyzację i ograniczniki na jednoczesne operacje.
  • Customowe nagłówki i profile przeglądarki: konfiguruj User-Agent i języki, włączaj lub wyłączaj obrazy/JS dla optymalizacji obciążenia, jeśli to nie przeszkadza celom skryptu.

Optymalizacja

  • Cache'owanie: jeśli Twoje zadanie to dopuszcza, używaj cache dla niezmiennych zasobów, aby przyspieszyć powtórne wywołania.
  • Separacja zadań: oddziel ciężkie kroki (np. analiza dużych stron) w oddzielne etapy, uruchamiaj je w kolejkach.
  • Monitoring: zewnętrzne metryki CPU/RAM/dysk/sieć i własne metryki wskaźników sukcesu na wątek pozwolą na szybką detekcję degradacji.

Co jeszcze można zrobić

  • Integracja z powiadomieniami: po zakończeniu skryptu wysyłaj e-mail lub powiadomienie push z wynikami.
  • Automatyczna aktualizacja list proxy: jeśli dostawca wspiera wydawanie aktualnych hostów/portów, zrealizuj okresową synchronizację.
  • Elastyczna rotacja przez API mobilnego dostawcy: na przykład w serwisach typu mobileproxy.space często przewidziano wygodne zapytania do zmiany IP zgodnie z harmonogramem lub zdarzeniem.

⚠️ Uwaga: Jakiekolwiek integracje i rozszerzenia rób z poszanowaniem prawa i zasad na celowych stronach. Nie używaj automatyzacji do zadań, które są niezgodne z prawem lub warunkami korzystania z zasobów.

FAQ

  • Jak sprawdzić, czy proxy naprawdę jest używane? Otwórz stronę do sprawdzania IP (np. przez httpbin), porównaj widoczne IP z IP z Twojej sieci. Powinno zgadzać się z IP proxy.
  • Ile wątków można uruchamiać? Zależy od CPU/RAM, jakości proxy i skomplikowania skryptu. Zacznij od 2–3 i zwiększaj stopniowo, kontrolując skuteczność.
  • Czy rotacja mobilnych IP jest zawsze potrzebna? Nie. Rotuj po zdarzeniu (błąd sieci, blokada) lub w rozsądnych odstępach czasu. Częsta rotacja może przeszkadzać w stabilności.
  • Co lepsze: autoryzacja przez login/hasło czy przez IP? Przez login/hasło łatwiej przenosić skrypty między maszynami. Przez IP — trochę mniej ręcznych wprowadzeń, ale wymaga aktualizacji białej listy przy zmianie sieci.
  • Czy można używać jednego proxy na kilka wątków? Niekoniecznie. To zwiększa ryzyko konfliktów i zmniejsza zarządzalność. Zalecana jest zasada jeden wątek — jedno proxy.
  • Jak przechowywać proxy bez ujawniania haseł? Użyj zabezpieczonych zmiennych BAS (jeśli dostępne), ogranicz dostęp do plików i szyfruj przechowywanie sekretów.
  • Dlaczego niektóre strony ładują się wolno? Możliwe są opóźnienia sieciowe, przeciążenie witryny lub ciężka zawartość. Użyj „Wait For Element”, optymalizuj timeouty i zmniejszaj liczbę jednoczesnych operacji.
  • Co zrobić, jeśli dostawca proxy jest tymczasowo niestabilny? Miej zapasową pulę z innego dostawcy, zmniejsz liczbę wątków i dostosuj interwały rotacji do stabilizacji.
  • Czy można uruchomić skrypt bez GUI? Tak, BAS wspiera uruchamianie projektów przez harmonogram i tryby konsolowe. Na początek zaleca się debugowanie przez GUI.
  • Gdzie sprawdzić, jeśli coś poszło nie tak? Przejrzyj logs\main.log, następnie thread_*.log, następnie results.csv. Sprawdź, czy proxy odpowiada wątkowi i czy są błędy autoryzacji.

Podsumowanie

Przeszedłeś pełną drogę: od instalacji BAS po konfigurację mobilnych proxy i uruchomienie wielowątkowego skryptu. Stworzyliśmy strukturę projektu, wdrożyliśmy logikę przetwarzania błędów, zbudowaliśmy system logowania i raportowania, a także sprawdziliśmy przenośność. Teraz masz podstawę: możesz ją rozwijać pod swoje potrzeby, dodawać skomplikowane kontrole, wzbogacać raporty i skalować wielowątkowość zgodnie z rosnącymi wymaganiami i zasobami.

Możesz: a) poprawić precyzję skryptów dzięki bardziej szczegółowym warunkom i selektorom, b) wprowadzić zaawansowaną orkiestrację wątków, c) ustawić automatyczne uzupełnianie i walidację listy mobilnych proxy, korzystając z API Twojego dostawcy (np. na poziomie mobileproxy.space), d) integrować powiadomienia i monitorowanie w celu stałej kontroli stabilności w czasie rzeczywistym.

Najważniejsza zasada — stopniowość. Skaluj ostrożnie, mierz metryki i dokumentuj zmiany. W ten sposób automatyzacja w BAS z mobilnymi proxy stanie się dla Ciebie przewidywalnym, bezpiecznym i efektywnym narzędziem. W przypadku wątpliwości dotyczących konfiguracji wróć do sekcji „Krok 3: Podłączenie i konfiguracja mobilnych proxy w BAS” oraz „Typowe błędy i rozwiązania” za pośrednictwem wewnętrznych linków na początku przewodnika. Powodzenia w praktycznej automatyzacji!