Scarnox · Blog

Fingerprinting przeglądarki wyjaśnione dla scraperów

Fingerprinting przeglądarki to identyfikowanie odwiedzającego na podstawie łącznych cech jego przeglądarki, a nie ciasteczka czy konta. Serwisy używają go, by rozpoznawać powracających odwiedzających, wykrywać oszustwa i rozpoznawać automatyzację. Jeśli scrapujesz sieć, na to się natkniesz. Ten przewodnik wyjaśnia, co jest mierzone, dlaczego pojedyncza niezgodność sprawia kłopoty i jak utrzymać jeden spójny, dobrze zachowujący się profil do zbierania danych publicznych. Pokazuje też granice tego, co strojenie fingerprintu może i powinno robić.

Z czego składa się fingerprint

Żadna pojedyncza wartość sama nie identyfikuje przeglądarki, ale wiele drobnych wartości razem często to robi. Typowe dane wejściowe to:

Skrypty fingerprintingu łączą te dane w hash lub wynik punktowy. Im więcej stabilnych i nietypowych sygnałów, tym bardziej identyfikujący jest rezultat.

Dlaczego niezgodność rzuca się w oczy

Prawdziwa przeglądarka jest wewnętrznie spójna. Jej system operacyjny zgadza się z czcionkami, strefa czasowa zgadza się z ustawieniem języka, a rozmiar ekranu pasuje do urządzenia, na którym działa. Scrapery często łamią tę spójność nieświadomie:

Każda niezgodność to niewielki sygnał. Razem mogą przenieść żądanie z kategorii "zwykły odwiedzający" do kategorii "wymaga bliższej uwagi".

Krok 1: zmierz własną konfigurację

Możesz zobaczyć, czego strona dowiaduje się o Twoim kliencie, ładując stronę testową fingerprintu, którą kontrolujesz, albo stronę diagnostyczną uruchomioną lokalnie. Spójrz na wartości i zapytaj, czy opisują jedną spójną maszynę. Oto minimalny przykład w Playwright, który wypisuje kilka z nich:

from playwright.sync_api import sync_playwright

with sync_playwright() as p:
    browser = p.chromium.launch(headless=False)
    context = browser.new_context(locale="en-GB", timezone_id="Europe/London")
    page = context.new_page()
    page.goto("https://example.com")  # zamień na stronę, której jesteś właścicielem
    print(page.evaluate("""() => ({
        language: navigator.language,
        timezone: Intl.DateTimeFormat().resolvedOptions().timeZone,
        platform: navigator.platform,
        viewport: [innerWidth, innerHeight]
    })"""))
    browser.close()

Krok 2: jedna tożsamość na profil

Najbardziej użyteczny nawyk to traktowanie każdej tożsamości scrapingowej jako jednego profilu. Nadaj jej jeden zestaw cech i zachowuj go przez cały jej okres życia:

Zmienianie jednej z tych cech przy każdym żądaniu jest bardziej podejrzane niż utrzymywanie ich stabilnie. To spójność sprawia, że profil wygląda zwyczajnie.

Krok 3: dawkuj profil jak odwiedzającego

Fingerprinting to tylko jedno źródło sygnałów. Serwisy patrzą też na to, jak szybko jeden profil porusza się po stronie. Profil, który ładuje dwieście stron produktów w minutę, nie jest człowiekiem, cokolwiek mówi jego fingerprint. Rozkładaj żądania, cache'uj wyniki i zatrzymuj się, gdy strona na to wskazuje. Lista kontrolna scrapowania bez blokad omawia dawkowanie szczegółowiej.

Krok 4: znaj granice

Strojenie fingerprintu nie sprawi, że zautomatyzowany profil będzie wyglądał jak człowiek, którego tam nie ma. Serwisy opierające się na fingerprintingu zwykle łączą go z limitami tempa, kontrolami kont i czasem captcha. Gdy pojawi się captcha, potrzebujesz tokenu od solvera, a nie kolejnych poprawek fingerprintu. Obecnie działającym typem captcha w Scarnox jest PopularCaptcha; przewodnik po PopularCaptcha w Pythonie pokazuje żądanie. Szerszy obraz tego, jakie widżety istnieją, znajdziesz w artykule rodzaje captcha wyjaśnione.

Co ważniejsze, omijanie fingerprintu nie jest licencją na ignorowanie zasad serwisu. Jeśli właściciel ograniczył zautomatyzowany dostęp, właściwym ruchem jest zatrzymanie się, a nie utrudnianie zauważenia Twojego profilu. Fingerprinting to także temat prywatności. Niektóre serwisy używają go do śledzenia ludzi między wizytami i to kolejny powód, by zbierać tylko to, czego potrzebuje Twój projekt.

Scrapuj odpowiedzialnie

Dokąd dalej

Jeśli Twój cel znajduje się za kontrolą na poziomie przeglądarki, zacznij od wykrywania przeglądarki headless, które omawia sygnały specyficzne dla zautomatyzowanych przeglądarek. Strony, które wymagają JavaScriptu, aby pokazać treść, opisano w artykule scrapowanie stron JavaScript.

Zacznij od darmowego kredytu próbnego, bez karty: załóż konto i wypróbuj przepływ PopularCaptcha na stronie, której jesteś właścicielem. Aktualne stawki znajdziesz na stronie cennika.

Następne kroki