Scarnox · Blog

Scraper'lar için tarayıcı parmak izi (fingerprinting) açıklaması

Tarayıcı parmak izi (fingerprinting), bir ziyaretçiyi çerez ya da hesap ile değil, tarayıcısının birleşik özellikleriyle tanımlama pratiğidir. Siteler bunu geri dönen ziyaretçileri tanımak, dolandırıcılığı tespit etmek ve otomasyonu fark etmek için kullanır. Web scraping yapıyorsanız bununla karşılaşacaksınız. Bu rehber neyin ölçüldüğünü, tek bir tutarsızlığın neden sorun yarattığını ve herkese açık veri toplamak için tutarlı, iyi davranan tek bir profili nasıl koruyacağınızı anlatır. Ayrıca parmak izi ayarlamanın neleri yapabileceğini ve yapmaması gerektiğini de açıklar.

Parmak izi neden oluşur

Tek bir değer bir tarayıcıyı tek başına tanımlamaz; ama birçok küçük değer birlikte çoğu zaman tanımlar. Yaygın girdiler şunlardır:

Parmak izi script'leri bunları bir hash ya da puana dönüştürür. Kararlı ve sıradışı sinyaller ne kadar fazlaysa sonuç o kadar ayırt edici olur.

Tutarsızlık neden göze çarpar

Gerçek bir tarayıcı içsel olarak tutarlıdır. İşletim sistemi yazı tipleriyle uyuşur, saat dilimi dil ayarıyla uyuşur, ekran boyutu üzerinde çalıştığı cihazla uyuşur. Scraper'lar bu tutarlılığı çoğu zaman farkında olmadan bozar:

Her tutarsızlık küçük bir sinyaldir. Birlikte, bir isteği "sıradan ziyaretçi"den "yakından bakılmalı" kategorisine taşıyabilirler.

Adım 1: kendi kurulumunuzu ölçün

Bir sayfanın istemciniz hakkında neler öğrendiğini, kontrol ettiğiniz bir parmak izi test sayfası ya da yerelde çalıştırdığınız bir tanılama sayfası yükleyerek görebilirsiniz. Değerlere bakın ve bunların tutarlı tek bir makineyi anlatıp anlatmadığını sorun. İşte birkaçını yazdıran minimal bir Playwright örneği:

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")  # sahibi olduğunuz bir sayfayla değiştirin
    print(page.evaluate("""() => ({
        language: navigator.language,
        timezone: Intl.DateTimeFormat().resolvedOptions().timeZone,
        platform: navigator.platform,
        viewport: [innerWidth, innerHeight]
    })"""))
    browser.close()

Adım 2: profil başına tek bir kimlik tutun

En faydalı alışkanlık, her scraping kimliğini tek bir profil olarak ele almaktır. Ona tek bir özellik seti verin ve bunu tüm ömrü boyunca koruyun:

Bu özelliklerden birini her istekte değiştirmek, onları sabit tutmaktan daha şüphelidir. Tutarlılık, bir profilin sıradan görünmesini sağlar.

Adım 3: profili bir ziyaretçi gibi hızlandırın

Parmak izi tek bir girdidir. Siteler bir profilin siteyi ne kadar hızlı gezdiğini de izler. Bir dakikada iki yüz ürün sayfası yükleyen bir profil, parmak izi ne derse desin bir insan değildir. İstekleri yayın, sonuçları önbelleğe alın ve bir sayfa size durmanız gerektiğini gösterdiğinde durun. Engellenmeden scraping kontrol listesi hızlandırma konusunu daha ayrıntılı anlatır.

Adım 4: sınırları bilin

Parmak izi ayarlaması, otomatik bir profili orada olmayan bir insan gibi gösteremez. Parmak izine dayanan siteler genellikle bunu hız sınırları, hesap kontrolleri ve bazen bir captcha ile birleştirir. Bir captcha çıktığında, daha fazla parmak izi oynamak yerine bir çözücüden token'a ihtiyacınız olur. Scarnox'ta canlı captcha türü PopularCaptcha'dır; PopularCaptcha Python rehberi isteğin nasıl yapıldığını gösterir. Hangi widget'ların var olduğuna dair daha geniş resim için captcha türleri açıklaması rehberine bakın.

Daha önemlisi, parmak izinden kaçınmak bir sitenin kurallarını görmezden gelmek için bir ruhsat değildir. Site sahibi otomatik erişimi kısıtladıysa doğru hamle durmaktır; profilinizi fark edilmesi zorlaştırmak değildir. Parmak izi aynı zamanda bir gizlilik konusudur. Bazı siteler onu insanları ziyaretler arasında izlemek için kullanır ve bu, projenizin ihtiyaç duyduğu veriyi toplamanız için bir sebep daha olmalıdır.

Sorumlu scraping

Sonraki adımlar

Hedefiniz bir tarayıcı düzeyindeki kontrolün arkasındaysa headless tarayıcı tespiti ile başlayın; bu rehber otomatik tarayıcılara özgü sinyalleri kapsar. İçeriğini göstermek için JavaScript gerektiren sayfalar JavaScript sitelerini scrape etmek rehberinde ele alınmıştır.

Ücretsiz deneme kredisiyle, kredi kartı gerekmeden başlayın: hesap oluşturun ve PopularCaptcha akışını sahibi olduğunuz bir sayfada deneyin. Güncel ücretler için fiyatlandırma sayfasına bakın.

Sonraki adımlar (liste)