ഒരു സ്പൈഡറിന് scrapy crawl-ന് കീഴിൽ പ്രതീക്ഷിച്ച പ്രോക്സി ഉപയോഗിക്കാം, എന്നാൽ Python സ്ക്രിപ്റ്റ് പ്രവർത്തിപ്പിക്കുമ്പോൾ അത് നേരിട്ട് പോകുന്നു. പ്രോക്സി സെർവർ മാറ്റുന്നതിന് മുമ്പ് ആ സ്ക്രിപ്റ്റ് അതിന്റെ ക്രമീകരണങ്ങൾ എങ്ങനെ നിർമ്മിക്കുന്നുവെന്ന് പരിശോധിക്കുക.

നിലവിലുള്ള ഒരു Scrapy പ്രോജക്ടിനും അതിന്റെ രജിസ്റ്റർ ചെയ്ത സ്പൈഡറിനും വേണ്ടി:

from scrapy.crawler import CrawlerProcess
from scrapy.utils.project import get_project_settings

settings = get_project_settings()
process = CrawlerProcess(settings=settings)
process.crawl('catalog')
process.start()

catalog പ്രോജക്റ്റിന്റെ സ്പൈഡർ പേര് കൊണ്ട് മാറ്റുക. പ്രോജക്റ്റ് അതിന്റെ scrapy.cfg വഴിയോ, ഇംപോർട്ട് ചെയ്യാവുന്ന ക്രമീകരണ മൊഡ്യൂളിലേക്ക് ചൂണ്ടുന്ന ശരിയായി സജ്ജീകരിച്ച SCRAPY_SETTINGS_MODULE വഴിയോ കണ്ടെത്താവുന്നതായിരിക്കണം.

CrawlerProcess() മാത്രം നിർമ്മിക്കുന്നത് സ്ക്രിപ്റ്റ് സ്പൈഡർ ക്ലാസും ഇംപോർട്ട് ചെയ്യുന്നു എന്ന കാരണത്താൽ മാത്രം പ്രോജക്റ്റിന്റെ ക്രമീകരണ ഫയൽ ഇംപോർട്ട് ചെയ്യുന്നില്ല. അതിനാൽ DOWNLOADER_MIDDLEWARES പ്രവർത്തനക്ഷമമാക്കിയ കസ്റ്റം മിഡിൽവെയർ ആ റണ്ണിൽ ഇല്ലാതിരിക്കാം.

ക്രമീകരണങ്ങൾ ലോഡ് ചെയ്യുന്നത് കോൺഫിഗർ ചെയ്ത ഘടകങ്ങൾ നൽകുന്നു; അത് ഒരു പ്രോക്സി വിലാസം കൽപ്പിച്ചുണ്ടാക്കുന്നില്ല. Scrapy-യുടെ HTTP പ്രോക്സി മിഡിൽവെയറിന് ഇപ്പോഴും അതിന്റെ സാധാരണ എൻവയോൺമെന്റ് പ്രോക്സിയോ വ്യക്തമായ request.meta['proxy'] മൂല്യമോ ആവശ്യമാണ്. HTTPPROXY_ENABLED അത് പ്രവർത്തനരഹിതമാക്കിയിട്ടില്ലെന്ന് പരിശോധിക്കുക. അനുവദിച്ച പൊതു പേജുകളുടെ ക്രോളിനായി HTTP പ്രോക്സി പട്ടിക ആ മെറ്റാഡാറ്റയിലൂടെയോ പരിസ്ഥിതിയിലൂടെയോ നൽകുന്ന HTTP പ്രോക്സി മൂല്യത്തിന് സ്ഥാനാർത്ഥികളെ നൽകുന്നു.

ലോഞ്ചറിന്റെ ലോഡ് ചെയ്ത ക്രമീകരണങ്ങളും സജീവ മിഡിൽവെയറും കമാൻഡ് ലൈൻ റണ്ണുമായി താരതമ്യം ചെയ്യുക. അവ ഒത്തുപോയാൽ തിരഞ്ഞെടുത്ത അഭ്യർത്ഥനയുടെ പ്രോക്സി മെറ്റാഡാറ്റയും യഥാർത്ഥ ഗതാഗത പിശകും കൊണ്ട് തുടരുക.

അനുബന്ധ ലേഖനങ്ങൾ