Giriş Kayıt ol
Veri kazıma

Engelleme dalgasını atlatan web scraping proxy'leri

Bir scraper'ın çok adrese, hızlı rotasyona ve trafik sayacı olmamasına ihtiyacı var. Tek bir Advanced.name paketi tek bağlantıda 5.000 ile 50.000 arası IPv4 adresi, 5.000'e kadar paralel thread ve adreslerin yaklaşık üçte birinin her gün değiştiği bir havuz verir.

  • paket başına 50.000 IP'ye kadar
  • 5.000'e kadar thread
  • trafik sayılmaz
Turkuaz durum ışıklı sunucu kabinleri: web scraping için proxy havuzu
Veri kazıma

Scraper'ın ihtiyacı ve paketin verdiği

Bir taramanın bitip bitmeyeceğini ya da ilk captcha'da ölüp ölmeyeceğini dört şey belirler.

Görevin ihtiyacıPaketin sundukları

Bir IP'nin siteye dakikada iki kez gitmeyeceği kadar adres

Tek listede 5.000 (1 numaralı paket) ile 50.000 (6 numaralı paket) arası adres

Taze havuz: engellenen IP'ler siz onlara ulaşmadan gitmeli

Havuzun yaklaşık üçte biri 24 saatte bir döner, liste 10 dakikada bir yenilenir

Tüm tarama için paralel bağlantılar

Pakete göre 500 ile 5.000 arası thread, tüm protokoller tek portta

Gigabaytları sayan yok

Hiçbir sınırsız pakette trafik sınırı yok: paket ve thread için ödersiniz

Sınırsız proxy

Tarama boyutunuza göre paketi seçin

Bölge, paket, süre. Fiyat yetkilendirilmiş bir IP içindir; her ek IP %10 ekler.

Bölge
Süre
Yetkili IP'ler
1 İlkinden sonraki her IP için +%10
Bu görev için önerilen
$0
  • Paketteki proxy
  • Thread
  • Yetkili IP'ler1
  • ProtokollerHTTP / SOCKS5
Fiyat tablosundaki 13 paketin hepsi

Ödemeden ilk sayfaya üç adım

Liste bağlantısını alın

Ödemeden sonra panelde get.advanced.name/<ID> gibi bir bağlantı çıkar. Her adres için bir satır olmak üzere ip:port satırları döndürür. HTTP ve SOCKS5 aynı porttadır.

Sunucu IP'nizi yetkilendirin

Liste yalnızca panelde eklediğiniz IP'lerden açılır. Scraper ayarlarında kullanıcı adı ve şifre yok: anahtar adresin kendisidir.

Rotasyonu kodda yapın

Listeyi yükleyin, döngü içinde dolaşın, bir istek başarısız olursa URL'yi sıradaki proxy ile tekrarlayın. Aşağıdaki betik bunu standart kütüphaneyle yapar.

Hazır scraper: rotasyon, tekrar deneme, ülke filtresi

CSV_URL'yi panelinizdeki dışa aktarıma yönlendirin, COUNTRY ve MIN_SPEED değerlerini girin, hedef URL'leri urls.txt dosyasına koyun. Betik yalnızca gereken ülkeyi tutar, her URL'yi sıradaki proxy ile çeker ve biri başarısız olursa başka bir adresle tekrar dener. Önce havuzu Socks List Processor ile kontrol edin.

CSV export link from your dashboard
ISO 3166-1 alpha-2 (e.g. DE, NL, US), or "" for the whole pool
keep proxies with speed >= this value (higher is better)
parallel requests
seconds per request
proxies to try before a URL is marked failed
one target URL per line
fetched HTML is written here as 1.html, 2.html, ...
Değerler formdan gelir; hazır dosyayı kopyalayın veya indirin.
Betik kodunu göster
Python 3.8+ · parsing.py
#!/usr/bin/env python3
"""Multithreaded scraper for Advanced.name proxies.

Reads the CSV proxy export, keeps the country and speed you need, then fetches a
list of target URLs through rotating proxies with automatic retries. Standard
library only, no pip. Edit the CONFIG block and run: python3 scrape.py
"""

# ================================ CONFIG ====================================
CSV_URL = "https://get.advanced.name/YOUR_LIST_ID.csv"  # CSV export link from your dashboard
COUNTRY = "DE"          # ISO 3166-1 alpha-2 (e.g. DE, NL, US), or "" for the whole pool
MIN_SPEED = 3           # keep proxies with speed >= this value (higher is better)
THREADS = 50            # parallel requests
TIMEOUT = 15            # seconds per request
RETRIES = 3             # proxies to try before a URL is marked failed
URLS_FILE = "urls.txt"  # one target URL per line
OUT_DIR = "pages"       # fetched HTML is written here as 1.html, 2.html, ...
# ============================================================================

import csv
import io
import itertools
import os
import sys
import threading
import urllib.request
from concurrent.futures import ThreadPoolExecutor, as_completed

# CSV columns from the dashboard export, ';' separated:
# ip ; port ; country ; speed ; uptime ; exit_ip
COL_IP, COL_PORT, COL_COUNTRY, COL_SPEED, COL_UPTIME = 0, 1, 2, 3, 4
UA = "Mozilla/5.0 (compatible; scraper/1.0)"


def load_proxies():
    """Download the CSV list, keep the wanted country and speed, fastest first."""
    raw = urllib.request.urlopen(CSV_URL, timeout=30).read().decode("utf-8", "replace")
    pool = []
    for row in csv.reader(io.StringIO(raw), delimiter=";"):
        if len(row) <= COL_SPEED or not row[COL_PORT].strip().isdigit():
            continue
        country = row[COL_COUNTRY].strip().upper()
        speed = int(row[COL_SPEED] or 0)
        if COUNTRY and country != COUNTRY.upper():
            continue
        if speed < MIN_SPEED:
            continue
        pool.append((row[COL_IP].strip() + ":" + row[COL_PORT].strip(), speed))
    pool.sort(key=lambda item: -item[1])
    return [addr for addr, _ in pool]


def opener_for(proxy):
    handler = urllib.request.ProxyHandler({"http": "http://" + proxy, "https": "http://" + proxy})
    return urllib.request.build_opener(handler)


def main():
    proxies = load_proxies()
    if not proxies:
        sys.exit("No proxies match COUNTRY=%r and MIN_SPEED=%d." % (COUNTRY, MIN_SPEED))
    with open(URLS_FILE, encoding="utf-8") as fh:
        urls = [u for u in map(str.strip, fh) if u and not u.startswith("#")]
    os.makedirs(OUT_DIR, exist_ok=True)
    print("proxies: %d (%s), urls: %d, threads: %d" % (len(proxies), COUNTRY or "any", len(urls), THREADS))

    rotation = itertools.cycle(proxies)
    lock = threading.Lock()
    done = {"ok": 0, "fail": 0}

    def fetch(index, url):
        for _ in range(RETRIES):
            with lock:
                proxy = next(rotation)
            req = urllib.request.Request(url, headers={"User-Agent": UA})
            try:
                body = opener_for(proxy).open(req, timeout=TIMEOUT).read()
            except Exception:
                continue
            with open(os.path.join(OUT_DIR, "%d.html" % index), "wb") as out:
                out.write(body)
            return True
        return False

    with ThreadPoolExecutor(max_workers=THREADS) as pool:
        futures = {pool.submit(fetch, i, u): u for i, u in enumerate(urls, 1)}
        for fut in as_completed(futures):
            ok = fut.result()
            with lock:
                done["ok" if ok else "fail"] += 1
                total = done["ok"] + done["fail"]
            sys.stderr.write("\r%d/%d  ok %d  fail %d" % (total, len(urls), done["ok"], done["fail"]))
            sys.stderr.flush()
    print("\nsaved %d pages to %s/ (%d failed)" % (done["ok"], OUT_DIR, done["fail"]))


if __name__ == "__main__":
    main()
Kurulum

Havuzu scraper'ınıza bağlamak

requests ve urllib

Proxy'yi her istekte verin: ProxyHandler ile bir opener kurun ya da requests'e proxies={'http': 'http://ip:port', 'https': 'http://ip:port'} verin. HTTP ve SOCKS tek portu paylaşır, bu yüzden http:// ikisini de kapsar; requests'te SOCKS5 için requests[socks] kurun ve DNS proxy tarafında çözülsün diye socks5h://ip:port kullanın.

Listeyi bir kez okuyun, döngü içinde dolaşın ve her istekte sıradaki adresi alın. Başarısız bir URL'yi atmadan önce iki üç kez başka bir proxy ile tekrar deneyin; yukarıdaki betik bunu zaten yapıyor.

Scrapy, Octoparse ve hazır tarayıcılar

Scrapy'de adresi request.meta['proxy'] içine koyun ya da oluşturucunun yazdığı dosyaya yönlendirilmiş bir proxy rotasyon middleware'i kullanın, CONCURRENT_REQUESTS değerini paketinizin thread sınırında ya da altında tutun. Octoparse ve ParseHub gibi görsel tarayıcılar aynı ip:port listesini proxy ayarlarında kabul eder.

Uzun bir taramadan önce havuzu bir kez Socks List Processor ile süzün, ölü adresler ayrıştırıcıya hiç ulaşmasın. Kodu hızlıca denemek için ücretsiz proxy listesi yeterli.

Uygulamada

Havuz nerede duruyor

Taramayı ayakta tutan dört alışkanlık

  1. Listeyi 10 dakikada bir yenileyin ve listeden kaybolan adresleri atın: rotasyondan bir sebeple çıkarıldılar.
  2. Bir IP'yi bir sitede birkaç istek boyunca kullanın, sonra devam edin. 20.000 adreslik bir döngü her IP'ye uzun bir dinlenme sağlar.
  3. 10 ile 15 saniyelik bir zaman aşımı koyun ve beklemek yerine sıradaki proxy ile tekrar deneyin.
  4. Bölgeyi siteye göre seçin: Avrupa mağazaları için Avrupa, Rus ilan siteleri için BDT, Çin pazar yerleri için Çin.
FAQ

Bu görevle ilgili sorular

Bir scraper kaç thread alır?
Paketin izin verdiği kadar: #1 paketinde 500, #6 paketinde 5000. Resi Core ve Resi Prime'da thread sınırı yoktur. Bir thread havuza açık bir bağlantıdır.
Proxy'ler kendiliğinden değişiyor mu?
Liste değişir: adreslerin yaklaşık üçte biri her gün yenilenir. Kodunuzda sıradaki adresi siz seçersiniz, böylece hız kontrolü sizde kalır.
Scraping için HTTP mi SOCKS5 mi?
Fark etmez. İki protokol de aynı portta yanıt verir, kütüphanenizin desteklediğini seçin. urllib ve curl için en kısa yol HTTP'dir.
Ödemeden önce test edebilir miyim?
Evet. Her pakette tam thread ile ve kart istemeden bir saat ücretsiz. Gerçek bir tarama çalıştırıp hata oranına bakmaya yeter.
Bir scraper ne zaman paket yerine Resi'ye ihtiyaç duyar?
Bir site paylaşımlı listelerdeki adresleri sizin onları tükettiğinizden hızlı engellediğinde. Resi Core her istekte bir ev IP'si verir, Resi Prime şehir seçimini ekler. Taramanın geri kalanı, trafiğin sayılmadığı bir pakette daha ucuza gelir.
Bu iş için tarifeler

Web scraping için ne alınmalı

Yüksek hacimli tarama sınırsız pakette daha ucuza gelir. Liste adreslerini engelleyen sitelerden Resi Core ile geçin, şehir verisini Resi Prime ile çekin.

Sınırsız proxy

Yüksek hacimli taramaEn uygun seçim

Paket #3 · World MIX · 20.000 IP · 2000 thread

Trafik sayılmaz: gigabaytlarca HTML ve görsel fiyatı değiştirmez. Adreslerin üçte biri her gün değişir, engellenenler listeden çıkar.

$700 aylıkveya saatlik $2.70

Resi Core

Korumalı siteler

2M+ IP · 200+ ülke · thread sınırı yok

Her istekte yeni bir ev IP'si. Paket adreslerinin captcha'ya takıldığı siteler için alın. Ülkeyi bağlantı dizesinde ayarlarsınız.

başlangıç $0.49 GB başına1 GB: $0.85

Resi Prime

Şehir düzeyinde veri

30M+ IP · 220 ülke · thread sınırı yok

Bağlantı dizesinde şehir, bölge, ISP ve ASN. Bir site farklı şehirlere farklı veri verdiğinde buna ihtiyacınız olur.

başlangıç $1.39 GB başına1 GB: $2.29

Taramayı bir saat içinde başlatın

Bir paket seçin, ücretsiz test saatini alın, scraper'ınızı gerçek havuzda çalıştırın.

Fiyatlar Bir saat ücretsiz deneyin