Scrapy-യുടെ ഇമേജ് അഭ്യർത്ഥനകളിൽ പ്രോക്സി ചേർക്കുക
ImagesPipeline സൃഷ്ടിക്കുന്ന Requests അലങ്കരിക്കുക, എന്നാൽ പൈപ്പ്ലൈനിന്റെ അഭ്യർത്ഥന ലോജിക് പുനർനിർമ്മിക്കാതെ ഇമേജ് ഡൗൺലോഡുകൾക്ക് പ്രോക്സി ലഭിക്കും.
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 ഫീൽഡ് നിറഞ്ഞതായി വിട്ടേക്കാം. കാണാതായ ഫലങ്ങൾ ഡൗൺലോഡറിന്റെ ലോഗുകളിലൂടെയും തിരഞ്ഞെടുത്ത പ്രോക്സിയിലൂടെയും കണ്ടെത്തുക.