KYC olmadan — kimlik, selfie veya belge istemez. Kripto ile ödeyin: BTC, USDT, USDC, ETH, SOL, LTC
Dil: Türkçe
Başlayın

Dokümanlar · oturumlar · döndürme · keep-alive

Sticky oturumlar ve IP döndürme: oturum kimlikleri, TTL ve bağlantı tekrar kullanımı

Döndürme bağlantı bazında, stickiness oturum kimliği bazındadır. Kitaplığınızın bağlantıları nasıl tekrar kullandığını öğrendiğinizde, IP'nin tam olarak ne zaman değişeceğine karar verebilirsiniz.

Son güncelleme: · 5 dk okuma

Hızlı cevap

Konut proxyde sticky oturumlar ve IP döndürme nasıl çalışır?

CrawlRelay üzerinde, oturum kimliği olmayan kullanıcı adı her yeni TCP bağlantısında genellikle farklı olan bir IP alır ve -session-<id>-ttl-<minutes> bu kimlik için 30 dakikaya kadar süresince bir IP tutar, ancak IP daha erken değişebilir. Döndürme HTTP isteği yerine bağlantıya göre olur, yani keep-alive IP'nizin ne zaman gerçek anlamda değişeceğini belirler. Konut trafiği 50 GB’den başlayan $0,50/GB ile ücretlendirilir. KYC olmadan ve kripto ile ödenir.

Oturum kuralları genel bakış

Döndürme birimiYeni TCP bağlantısı başına havuzdan bir IP, genellikle farklı
Sticky oturumKullanıcı adının sonuna eklenen -session-<id>-ttl-<minutes>
Oturum süresi30 dakikaya kadar
Oturum kimliği1–32 harf veya rakam; akış başına bir kimlik
Oturumu erken sonlandıran şeyArkasındaki konut cihazının çevrimdışı olması
Paylaşılan KimliklerAynı kimliği gönderen müşteriler aynı çıkışı paylaşır
MaliyetYok: oturumlar ve döndürme GB başına fiyata dahildir

Oturum kimliği gönderdiğimde ağ geçidinde ne olur?

Ağ geçidi her yeni bağlantıda kullanıcı adını okur. Oturum bölümü yoksa, sadece hedeflemenize uyan konut proxy çıkışı seçer. Oturum bölümü varsa, belirlediğiniz TTL süresi boyunca aynı kimlik için aynı çıkışı korur.

Yapışkan IP gerçek bir ev bağlantısıdır, bu yüzden TTL bitmeden kaybolabilir: cihaz kapatılır, Wi-Fi kaybeder veya ağ değiştirir. Uzun akışlar bunun üstesinden gelmeli; çıkış IP'sini kontrol noktalarında doğrulayıp tüm işi başarısız etmek yerine kontrol noktasından yeniden başlamalıdır.

Her kütüphane bağlantıları nasıl yeniden kullanır?

Bir kütüphane bir bağlantıyı açık tutarsa, bu bağlantıdaki her istek aynı çıkışı paylaşır. Amaçlı olarak her davranışı elde etmek için böyle yapılır.

KütüphaneVarsayılanİstek başına yeni IPBir akış için bir IP
Python requestsSession bağlantıları açık tutarBaşlık Connection: close veya her istek için yeni bir SessionKullanıcı adında oturum kimliği olan bir Session
httpxMüşteri bağlantı havuzlarıhttpx.Limits(max_keepalive_connections=0)Her oturum kimliği için bir müşteri
aiohttpTCPConnector bağlantı havuzlarıTCPConnector(force_close=True)Proxy URL kullanıcı adında oturum kimliği
ScrapyProxy kimlik bilgileri ve ana bilgisayar başına havuzlarMiddleware ](/docs/scrapy/) ile meta={"proxy_session": "new"}Akış için sabit bir proxy_session
Playwright / PuppeteerChrome bağlam başına havuz oluştururSayfa başına yeni bağlamHer oturum kimliği için bir bağlam
Node.js undici, axios, gotAjanlar soketleri açık tutarHer istek için yeni ajan veya keep-alive kapalıHer oturum kimliği için bir ajan
curlHer komut için bir bağlantıŞimdiden durum böyleHer komutta aynı oturum kimliği

Hangi oturum stratejisi hangi scraping işi için uygundur?

İşStratejiÖnerilen TTL
Bağımsız ürün, makale veya listeleme sayfalarıDöndürme: oturum kimliği yok—
Sonraki sayfası bir çerez veya imlece bağlı olan sayfalamaListe başına bir yapışkan oturum10–30 dk
Arama, sonra sonuçlar, sonra detay sayfalarıArama başına bir yapışkan oturum10–20 dk
Bir sitenin birkaç sayfasını işleten başsız tarayıcıTarayıcı bağlamı başına bir yapışkan oturumBağlamın yaşam süresi, en fazla 30 dk
Bir sayfanın birkaç şehirde ne gösterdiğini kontrol etmeŞehir kontrolü başına kısa oturum5 dk
Aynı sayfayı her saat tekrar kontrol etmeDöndür—

Python'da yapışkan oturum havuzunu nasıl yönetirim?

Küçük bir havuz, yükü birkaç stabil çıkışa yayar ve her birini belirli bir istek sayısından sonra veya çıkışının başarısız olduğuna dair bir işaret (ör. 502 veya 503) gördüğünde pasif hale getirir. Yaptığı şey değil: 403 veya 429 hatasını aşmak için IP değiştirmez. Bunlar sitenin yavaşlamanızı istediği anlamına gelir, bu yüzden havuz bunları kodunuza iletir.

Python: yapışkan oturum havuzu
import random
import uuid

import requests

GATEWAY = "gw.crawlrelay.com:7777"
BASE_USER, PASSWORD = "USERNAME-country-us", "PASSWORD"


class SlowDown(Exception):
    """The target asked us to slow down (403 or 429): back off, do not rotate."""


class StickySession:
    def __init__(self, ttl=15, max_requests=50):
        self.id = uuid.uuid4().hex[:10]
        self.max_requests, self.used = max_requests, 0
        user = "%s-session-%s-ttl-%d" % (BASE_USER, self.id, ttl)
        proxy = "http://%s:%s@%s" % (user, PASSWORD, GATEWAY)
        self.http = requests.Session()
        self.http.proxies = {"http": proxy, "https": proxy}


class SessionPool:
    EXIT_PROBLEMS = {502, 503, 504}

    def __init__(self, size=5, **options):
        self.options = options
        self.sessions = [StickySession(**options) for _ in range(size)]

    def _replace(self, i):
        self.sessions[i].http.close()
        self.sessions[i] = StickySession(**self.options)

    def get(self, url, **kwargs):
        i = random.randrange(len(self.sessions))
        s = self.sessions[i]
        s.used += 1
        try:
            r = s.http.get(url, timeout=(10, 30), **kwargs)
        except requests.exceptions.RequestException:
            self._replace(i)  # dropped exit or timeout: start a fresh session
            raise
        if r.status_code in (403, 429):
            raise SlowDown("%s returned %d" % (url, r.status_code))
        if r.status_code in self.EXIT_PROBLEMS or s.used >= s.max_requests:
            self._replace(i)
        return r


pool = SessionPool(size=5, ttl=15, max_requests=50)
print(pool.get("https://api.ipify.org").text)

Bir yapışkan IP'nin değiştiğini nasıl anlarım?

Sor. Akışın başında ve her kontrol noktasında aynı oturum üzerinden https://api.ipify.org gibi bir IP yankı servisi isteğinde bulun ve yanıtları karşılaştır. Bir değişiklik, oturumun arkasındaki çıkışın değiştiği anlamına gelir: akışı son kontrol noktasından tekrar başlat veya yeni bir oturum aç. Bunu oturum kimliği ile kaydet, böylece hata ayıklarken IP değişikliklerini site davranışından ayırt edebilirsin.

Hangi oturum hataları en pahalıya patlar?

  • Çok adımlı bir akışın her isteğinde döndürme. Site, bir alışveriş sepeti, imleç veya arama jetonunun ülkeler arasında atladığını görür ve sıfırlar.
  • Her çalışan için bir oturum kimliği. Oturum, bir akış içindir; her çalışana ve her akışa kendi kimliğini ver.
  • İşten çok daha uzun oturum süreleri. 2 dakikalık bir akış için 30 dakikalık TTL, bir IP'yi gereksiz yere meşgul eder ve logları okumayı zorlaştırır.
  • 429'u IP sorunu olarak değerlendirmek. Yeni bir IP, sitenin kuralını değiştirmez; yavaşlamak değiştirir. Bkz 429 Too Many Requests].
  • İstek başı döndürme varsaymak. Keep-alive çıkışı korur; kütüphanen için yukarıdaki tabloya bak.

Oturumlar ve döndürme: sorular

Yapışkan bir oturum ne kadar sürer?

Yapışkan oturumlar ayarladığınız süre boyunca (ttl, dakika cinsinden) aynı IP’yi tutar, maksimum 30 dakika. IP daha erken değişebilir, örneğin konut cihazı çevrimdışı olursa. Hizmet verdiği akıştan biraz daha uzun bir TTL seç ve çıkışı kontrol noktalarında denetle.

Yapışkan oturum döndürmeden daha mı pahalı?

Hayır. CrawlRelay trafiği GB başına ücretlendirir ve oturumlar, döndürme ile hedefleme bu fiyata dahildir. Yapışkan oturum, bir bağlantının canlı tutulması sayesinde her istekte yeni TLS el sıkışmasını önleyerek bile trafik tasarrufu sağlayabilir.

Her istekte döndürmek kazıma için daha mı iyi?

Bağımsız sayfalar için döndürme yükü dağıtır ve bir IP'den saatlerce tek bir siteye istek göndermeyi önler. Çerezle bağlı sayfalama gibi durumlarda ise akışı bozar. Çoğu kazıyıcı her ikisini de kullanır: öğeler arasında döndürür, bir akış içinde yapışkan kalır.

Tam olarak hangi IP'yi alacağımı seçebilir miyim?

Hayır. Bir konut proxy ağ geçidi, kullanıcı adındaki hedeflemeye uygun sürekli değişen bir havuzdan çıkışlar atar. Ülke, şehir, ABD eyaleti, posta kodu veya ASN seçebilirsin, ve bir oturumla IP tutabilirsin; belirli bir IP adresini rezerve edemezsin.

Döndürme ve oturumlar her planda var

$1,50 için 1 GB, $0,50/GB 50 GB'ten.

$0,50/GB · KYC olmadan

Başlayın