Przeglądarka headless

Przeglądarka headless to przeglądarka bez okna sterowana przez program: otwiera strony i wykonuje skrypty.

Zaktualizowano · Redakcja Prokso

Strony budowane przez skrypty nie oddają danych zwykłemu żądaniu: zamiast cen są tam puste bloki. Przeglądarka headless ładuje stronę w całości, jak człowiek w Chrome, ale bez okna na ekranie.

Najbardziej znane narzędzia to Puppeteer, Playwright i Selenium. Proxy ustawia się w nich przy uruchamianiu przeglądarki.

Przeglądarka pobiera wszystko: obrazy, czcionki, wideo. Przez to zużywa znacznie więcej transferu niż proste żądanie. Niepotrzebne zasoby warto blokować w ustawieniach skryptu.

Ile to wyniesie, pomoże oszacować kalkulator transferu.

Proxy z loginem w Playwright i Puppeteer

Flaga Chrome --proxy-server przyjmuje tylko host i port, bez loginu i hasła. Dlatego dane logowania przekazuje się osobno. W Playwright trafiają one do opcji uruchomienia: proxy: { server: "http://gw.prokso.com:823", username: "LOGIN", password: "PASSWORD" }.

W Puppeteer uruchamiasz przeglądarkę z --proxy-server=gw.prokso.com:823 i przed otwarciem strony wywołujesz page.authenticate({ username: "LOGIN", password: "PASSWORD" }). Inna możliwość to dodanie IP serwera do białej listy IP planu, wtedy login i hasło w ogóle nie są potrzebne.

Jak odciąć ciężkie zasoby

Zasoby, których przeglądarka nie pobrała, nie przechodzą przez proxy i nie są liczone jako transfer. W Playwright metoda page.route pozwala anulować żądania według typu: na przykład odrzucać image, media i font, a resztę przepuszczać. W Puppeteer to samo robi page.setRequestInterception(true).

Nie blokuj skryptów i żądań XHR: potrzebne dane zwykle przychodzą właśnie przez nie. Po konfiguracji sprawdź wynik na kilku stronach. Kolejna oszczędność to używanie jednej przeglądarki dla wielu stron zamiast uruchamiania nowej za każdym razem: zapisane w pamięci podręcznej skrypty i style nie są pobierane ponownie.

Jak pracować ze stronami delikatnie

Przeglądarka headless ładuje stronę tak samo jak człowiek, tylko znacznie szybciej. Otwieraj strony pojedynczo lub w kilku kartach na stronę i czekaj na potrzebny element przez waitForSelector zamiast stałych pauz. Przed startem przeczytaj robots.txt strony i sprawdź, czy nie ma ona oficjalnego API.

W Playwright każdy browser.newContext() dostaje własne cookies i magazyn danych. Zamykaj konteksty, których już nie potrzebujesz: zwalnia to pamięć i odrzuca ich cookies.

Pytania i odpowiedzi (FAQ)

Kiedy potrzebna jest przeglądarka headless, a nie proste żądanie?

Gdy dane na stronie pojawiają się dopiero po wykonaniu skryptów. Jeśli to, czego szukasz, widać w kodzie strony, proste żądanie jest szybsze i zużywa mniej transferu.

Jak ustawić proxy w przeglądarce headless?

Przy uruchamianiu przeglądarki, w parametrach Puppeteer, Playwright lub Selenium. Przykłady znajdziesz w instrukcjach.

Rezydencjalne $1.59, mobilne $2.50, serwerowe $0.65 za 1 GB

Rejestracja w minutę, dostęp od razu po płatności.

Utwórz konto