GBProxies

Paano Mag-set Up ng Rotating Proxies sa Scrapy

Ang built-in HttpProxyMiddleware ng Scrapy ay nagbabasa ng proxy mula sa request.meta. Sa isang rotating gateway, nagtatakda ka ng isang URL at bawat request ay nakakakuha pa rin ng bagong IP.

Mga Hakbang

  1. Panatilihing naka-enable ang HttpProxyMiddleware (ito ay naka-on bilang default)
  2. Itakda ang meta={"proxy": url} sa bawat request, o sa start_requests
  3. Ilagay ang username at password sa proxy URL
  4. Bawasan ang CONCURRENT_REQUESTS_PER_DOMAIN kung may rate limit pa rin ang site

Halimbawa ng code

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}

Palitan ang USERNAME at PASSWORD ng proxy login mula sa Proxies page ng console. Ang port 10000 ay residential HTTP; tingnan ang mga port ng bawat produkto sa ibaba.

Mga Tip

  • I-off ang IMAGES_ENABLED at iwasan ang media downloads para makatipid ng GB
  • Gamitin ang DOWNLOAD_TIMEOUT 30 at RETRY_TIMES 3 para sa steady na pagtakbo

Mga karaniwang tanong

Kailangan ko ba ng rotation middleware?

Hindi. Ang gateway ang nagro-rotate para sa iyo; isang proxy URL lang ay sapat na.

Paano Mag-set Up ng Rotating Proxies sa Scrapy