Free Proxy Health List

Canlı anlık görüntü · 55,863 proxies

Scrapy proxy ara katmanı

Her istekte döndüren ve hata durumunda yeniden deneyen, doğrudan takılabilir indirme ara katmanı.

Scrapy proxy ara katmanı

1. middlewares.py

import itertools, random

class RotatingProxyMiddleware:
    def __init__(self):
        with open("proxies.txt") as handle:
            self.proxies = [line.strip() for line in handle if line.strip()]
        random.shuffle(self.proxies)
        self.pool = itertools.cycle(self.proxies)

    def process_request(self, request, spider):
        request.meta["proxy"] = f"http://{next(self.pool)}"

2. settings.py

DOWNLOADER_MIDDLEWARES = {
    "myproject.middlewares.RotatingProxyMiddleware": 350,
    "scrapy.downloadermiddlewares.retry.RetryMiddleware": 550,
}
RETRY_TIMES = 5
DOWNLOAD_TIMEOUT = 10

Zaman kazandıran notlar

Sıra önemlidir: proxy ara katmanı yeniden deneme ara katmanından önce çalışmalı ki her deneme başarısız olanı tekrarlamak yerine yeni bir proxy seçsin. DOWNLOAD_TIMEOUT'u düşük tutun — ücretsiz proxy'ler hattın en yavaş parçasıdır — ve hata oranını karşılamak için RETRY_TIMES'ı yükseltin.

İlgili rehberler

Genel anlık görüntü sınırları
Ücretsiz genel proxy'ler paylaşımlıdır ve kimliği bilinmeyen taraflarca işletilir. Asla parola, token veya kişisel veri göndermeyin. GitHub Kabul Edilebilir Kullanım Politikalarına uyun: spam yok, saldırı yok, erişim denetimlerini aşma yok, site politikalarına aykırı kazıma yok.