response.request.meta সলনি কৰিলে এটা Python অবজেক্ট সলনি হয়। আন এটা ডাউনলোড কৰিবলৈ Scrapy-ক শ্বিডিউল কৰিবলৈ আন এটা Request দিব লাগিব।

আপোনাৰ কলবেক-এ স্পষ্টভাৱে পুনৰ চেষ্টা কৰিবলৈ নিৰ্ণয় লোৱা GET ৰ বাবে, Scrapy ৰ ৰাজহুৱা পুনৰ চেষ্টা সহায়কে নতুন অনুৰোধৰ সৈতে পুনৰ চেষ্টাৰ হিচাপ ৰাখিব পাৰে:

from scrapy.downloadermiddlewares.retry import get_retry_request

def retry_through(self, response, proxy_url):
    retry = get_retry_request(
        response.request,
        spider=self,
        reason='choose_another_proxy',
    )
    if retry is None:
        return None
    retry.meta['proxy'] = proxy_url
    retry.headers.pop('Proxy-Authorization', None)
    return retry

এইটো এটা spider সহায়ক। ইয়াৰ কলাৰে ফলাফল Request এটা উপলব্ধ হ'লে ঘূৰাই দিব বা yield কৰিব লাগে। None ৰ অৰ্থ হ'ল প্ৰযোজ্য সীমাৰ ভিতৰত সহায়কে আন পুনৰ চেষ্টা নাকচ কৰিলে।

পুনৰ চেষ্টা সহায়কে অনুৰোধটো কপি কৰে, ইয়াৰ পুনৰ চেষ্টাৰ সংখ্যা আপডেট কৰে আৰু পুনৰ চেষ্টাৰ বাবে উপযুক্ত শ্বিডিউলাৰ আচৰণ যোগান ধৰে। একেটা URL সাধাৰণ নতুন অনুৰোধ হিচাপে yield কৰিলে ইয়াৰ পৰিৱৰ্তে প্ৰতিলিপি ফিল্টাৰিঙত পৰিব পাৰে।

সক্ৰিয় HttpProxyMiddleware-এ সমৰ্থন কৰা প্ৰক্সি URL ব্যৱহাৰ কৰক। অনুমোদিত ৰাজহুৱা GET অনুৰোধৰ পুনৰ চেষ্টাৰ বাবে, HTTP প্ৰক্সি তালিকাৰ পৰা এটা প্ৰমাণীকৰণ নোহোৱা HTTP প্ৰাৰ্থীয়ে proxy_url যোগান ধৰিব পাৰে। আগতে সংলগ্ন proxy-authorization ফিল্ড মচি পেলালে পুৰণি মধ্যস্থকাৰীৰ হেডাৰ এই নিৰ্বাচনলৈ যোৱাৰ পৰা বাধা দিয়ে; প্ৰযোজ্য হ'লে মিডলৱেৰক নতুন প্ৰক্সি URL ৰ পৰা নতুন একাউণ্ট উলিয়াবলৈ দিয়ক।

এই কলবেক-স্তৰৰ নিৰ্বাচন RetryMiddleware-ৰ নিজৰ সংৰূপিত বিফলতাৰ স্বয়ংক্ৰিয় পৰিচালনাৰ পৰা পৃথক ৰাখক। পুনৰ চেষ্টাৰ মালিক কোন স্তৰ সেইটো নিৰ্ধাৰণ কৰক যাতে কাৰ্যই দুটা স্বতন্ত্ৰ বাজেট নখায়। উদাহৰণটো পুনৰাবৃত্তিযোগ্য GET কাৰ্যৰ বিষয়ে, যিকোনো দাখিল কৰা লেনদেন পুনৰাবৃত্তি কৰা সুৰক্ষিত বুলি প্ৰতিশ্ৰুতি নহয়।

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