Scrapy-তে ঘূর্ণায়মান প্রক্সি সেট আপ করার方法
Scrapy-এর অন্তর্নির্মিত HttpProxyMiddleware request.meta থেকে প্রক্সি পড়ে। একটি ঘূর্ণায়মান গেটওয়ে দিয়ে আপনি একটি URL সেট করেন এবং প্রতিটি রিকোয়েস্ট এখনও একটি নতুন IP পায়।
ধাপসমূহ
- HttpProxyMiddleware সক্ষম রাখুন (এটি ডিফল্টভাবে চালু থাকে)
- প্রতিটি রিকোয়েস্টে, বা start_requests-এ meta={"proxy": url} সেট করুন
- প্রক্সি URL-এ ইউজারনেম এবং পাসওয়ার্ড দিন
- যদি কোনো সাইট এখনও রেট লিমিট করে, তাহলে CONCURRENT_REQUESTS_PER_DOMAIN কমিয়ে দিন
উদাহরণ কোড
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 এবং PASSWORD কে কনসোলের Proxies পৃষ্ঠা থেকে প্রক্সি লগিন দিয়ে প্রতিস্থাপন করুন। পোর্ট 10000 হল রেসিডেনশিয়াল HTTP; প্রতিটি পণ্যের পোর্ট নিচে দেখুন।
টিপস
- IMAGES_ENABLED অফ রাখুন এবং মিডিয়া ডাউনলোড এড়িয়ে GB সেভ করুন
- স্থির রানের জন্য DOWNLOAD_TIMEOUT 30 এবং RETRY_TIMES 3 সেট করুন
সাধারণ প্রশ্নসমূহ
আমার কি রোটেশন মিডলওয়্যার দরকার?
না। গেটওয়ে আপনার জন্য রোটেট করে; একটি প্রক্সি URLই যথেষ্ট।