GBProxies

Scrapy'de Dönen Proxyler Nasıl Ayarlanır

Scrapy'nin yerleşik HttpProxyMiddleware'i proxy'yi request.meta'dan okur. Dönen bir gateway ile bir URL ayarlarsınız ve her istek yine yeni bir IP alır.

Adımlar

  1. HttpProxyMiddleware'i etkin tutun (varsayılan olarak açıktır)
  2. Her istekte meta={"proxy": url} ayarlayın veya start_requests'te ayarlayın
  3. Proxy URL'sine kullanıcı adı ve şifreyi ekleyin
  4. Bir site hız sınırlaması yapıyorsa CONCURRENT_REQUESTS_PER_DOMAIN'ı düşürün

Örnek kod

import scrapy

PROXY = "http://USERNAME-cc-gb:PASSWORD@gw.gbproxies.cc:10000"

class PricesSpider(scrapy.Spider):
    name = "prices"
    start_urls = ["https://example.com/catalog"]

    def start_requests(self):
        for url in self.start_urls:
            yield scrapy.Request(url, meta={"proxy": PROXY})

    def parse(self, response):
        for href in response.css("a.product::attr(href)").getall():
            yield response.follow(href, self.parse_item, meta={"proxy": PROXY})

    def parse_item(self, response):
        yield {"title": response.css("h1::text").get(), "url": response.url}

USERNAME ve PASSWORD'u konsolun Proxyler sayfasındaki proxy giriş bilgileriyle değiştirin. Port 10000 residential HTTP'dir; her ürünün portlarını aşağıda görün.

İpuçları

  • IMAGES_ENABLED'i kapatın ve medya indirmelerinden kaçınarak GB tasarrufu yapın
  • Kararlı çalışmalar için DOWNLOAD_TIMEOUT 30 ve RETRY_TIMES 3 kullanın

Sık sorulan sorular

Bir rotasyon middleware'ine ihtiyacım var mı?

Hayır. Gateway sizin için rotasyon yapar; bir proxy URL yeterlidir.

Scrapy'de Dönen Proxyler Nasıl Ayarlanır