from scrapy.pipelines.images import ImagesPipeline

class ProxiedImagesPipeline(ImagesPipeline):
    def get_media_requests(self, item, info):
        for request in super().get_media_requests(item, info):
            request.meta['proxy'] = 'http://proxy.example:8080'
            yield request

Scrapy 2.13.3-এর জন্য, ITEM_PIPELINES-এ থাকা সাধারণ ImagesPipeline এন্ট্রিটি এই সাবক্লাসের import পথ দিয়ে প্রতিস্থাপন করুন। IMAGES_STORE এবং অন্যান্য সেটিংস রেখে দিন।

প্যারেন্ট কল করলে তার কনফিগার করা ছবি-URL ফিল্ড ও callback সংরক্ষিত থাকে। সাবক্লাস শুধু অনুরোধের রুট যোগ করে, যা সক্রিয় HttpProxyMiddleware ব্যবহার করে। প্রতিটি ছবির URL তার গন্তব্য হয়ে থাকে। প্রক্সি ক্রেডেনশিয়াল ছাড়া নতুন পাবলিক-ছবির অনুরোধ, রুটটি অনুমোদিত হলে HTTP প্রক্সি তালিকা থেকে একটি এন্ট্রি ব্যবহার করতে পারে।

পৃষ্ঠা অনুরোধ নিজের নীতি রাখে। গ্লোবাল প্রক্সি পরিবেশ থাকলে, এই রিলিজে meta={'proxy': None} নির্বাচিত পৃষ্ঠা অনুরোধকে সরাসরি করে।

ডাউনলোড সত্যিই শুরু হয়েছে কি না যাচাই করুন। পাইপলাইন ক্যাশ হিট নেটওয়ার্ক অনুরোধ এড়াতে পারে। নতুন ট্রান্সফারের জন্য সম্পন্ন-ছবির ফলাফল এন্ট্রিগুলো অনুরোধ করা URL-এর সাথে তুলনা করুন: সফল কাজগুলো সেখানে দেখা যায়, আর ব্যর্থতাগুলো মূল ছবি-URL ফিল্ড ভরা রেখে যেতে পারে। হারানো ফলাফল ডাউনলোডার লগ ও নির্বাচিত প্রক্সির মাধ্যমে অনুসরণ করুন।

সম্পর্কিত নিবন্ধ