പ്രോക്സി വഴി Scrapy AutoThrottle: സ്ലോട്ടുകളും കാലതാമസവും
ലക്ഷ്യ സൈറ്റിന്റെ ഡൗൺലോഡ് സ്ലോട്ടുകൾ പ്രോക്സി റൂട്ടുകളിൽ നിന്ന് വേർതിരിച്ച് നിർത്തുക, കാലതാമസത്തെ നിരീക്ഷിച്ച അഭ്യർത്ഥനാ പാതയായി വ്യാഖ്യാനിക്കുക.
സ്വതേ Scrapy അഭ്യർത്ഥന URL-ന്റെ ഡൊമെയ്നിൽ നിന്നാണ് ഡൗൺലോഡ് സ്ലോട്ടുകൾ അനുവദിക്കുന്നത്. ഒരു അഭ്യർത്ഥനയ്ക്ക് HTTP പ്രോക്സി നൽകുന്നത് ആ URL-നെ പ്രോക്സിയുടെ ഹോസ്റ്റ്നാമാക്കി മാറ്റുന്നില്ല. അതിനാൽ വ്യത്യസ്ത സൈറ്റുകളിലേക്കുള്ള അഭ്യർത്ഥനകൾ ഒരേ ഇടനിലക്കാരനെ പങ്കിടുമ്പോഴും വ്യത്യസ്ത സ്ലോട്ടുകൾ നിലനിർത്താം.
നിരീക്ഷിച്ച ഡൗൺലോഡ് കാലതാമസം ഉപയോഗിച്ച് AutoThrottle ഓരോ സ്ലോട്ടിന്റെയും കാലതാമസം ക്രമീകരിക്കുന്നു. സ്റ്റാൻഡേർഡ് ഡൊമെയ്ൻ സമാന്തര പരിധിയും കുറഞ്ഞ ഡൗൺലോഡ് കാലതാമസവും ഇപ്പോഴും ബാധകമാണ്.
അൽഗോരിതം മാറ്റുന്നതിന് മുമ്പ് ഗ്രൂപ്പിംഗ് പരിശോധിക്കുക
ഇഷ്ടാനുസൃത മിഡിൽവെയർ request.meta["download_slot"] അനുവദിച്ച് സാധാരണ സ്ലോട്ട് തിരഞ്ഞെടുപ്പ് അതിലംഘിക്കാം. ചില പ്രോക്സി വിപുലീകരണങ്ങൾ അവയുടെ സ്വന്തം ഗ്രൂപ്പിംഗ് ഉപയോഗിക്കുന്നു. ബന്ധമില്ലാത്ത സൈറ്റുകൾ ഒരേ ത്രോട്ടിൽ പങ്കിടുന്നതായി തോന്നിയാൽ ആ ക്രമീകരണങ്ങൾ പരിശോധിക്കുക.
നേരെമറിച്ച്, ഓരോ പ്രോക്സിക്കും വ്യത്യസ്ത സ്ലോട്ട് അനുവദിച്ചാൽ നിരവധി പ്രോക്സികൾ ഒരേ സമയം ഒരേ ലക്ഷ്യത്തെ സമീപിക്കാം. ക്രോളർ മാനിക്കേണ്ട സൈറ്റ് വ്യാപക പരിധിയെ അത് തകർക്കാം. സംരക്ഷിക്കപ്പെടുന്ന വിഭവത്തിനനുസരിച്ച് സ്ലോട്ട് കീ തിരഞ്ഞെടുക്കുക.
കാലതാമസത്തിൽ നിങ്ങൾ ഉപയോഗിച്ച പാത ഉൾപ്പെടുന്നു
അഭ്യർത്ഥന അയച്ചത് മുതൽ HTTP ഹെഡറുകൾ ലഭിക്കുന്നത് വരെയുള്ള കാലതാമസം Scrapy അളക്കുന്നു. പ്രോക്സി വഴി കടന്നുപോകുന്ന അഭ്യർത്ഥന ആ നിരീക്ഷണത്തിൽ ഇടനിലക്കാരന്റെ ക്യൂവിംഗും ഫോർവേഡിംഗ് കാലതാമസവും ഉൾപ്പെടുത്താം. AutoThrottle ഉറവിടത്തിന് മാത്രമുള്ള പ്രോസസ്സിംഗ് സമയം വെവ്വേറെ നേടുന്നില്ല.
സമാന്തരത വർദ്ധിപ്പിക്കുന്നത് ആ അളവ് സൈറ്റിനെ ഒറ്റപ്പെടുത്താൻ പ്രാപ്തമാക്കുന്നില്ല. ലക്ഷ്യത്തോടുള്ള മര്യാദയും പ്രോക്സി ശേഷിയും രണ്ടും പ്രധാനമാകുമ്പോൾ വെവ്വേറെ പരിധികളായി നിലനിർത്തുക. പങ്കിട്ട പ്രോക്സിക്ക് ലക്ഷ്യ സ്ലോട്ടുകളിലുടനീളം അധിക സമാന്തര ബജറ്റ് ആവശ്യമായേക്കാം, ഓരോ ലക്ഷ്യവും സ്വന്തം നിരക്ക് നയം നിലനിർത്തുന്നു.