Scrapy പിന്തുടരുന്നതിന് മുമ്പ് റീഡയറക്ട് കാണിക്കാം
അഭ്യർത്ഥന മെറ്റാഡാറ്റ വഴി പ്രോക്സി GET-ന്റെ പ്രാരംഭ റീഡയറക്ട് നിലയും Location-ഉം താൽക്കാലികമായി വെളിപ്പെടുത്തുക, റീഡയറക്ട് കൈകാര്യം HTTP-പിശക് ഫിൽട്ടറിംഗിൽ നിന്ന് വേർതിരിച്ച് നിർത്തുക.
പ്രോക്സി GET ഒരു സെർവറിലെത്തി റീഡയറക്ടുകൾ പിന്തുടരാം, ഒടുവിൽ അന്തിമ പരാജയം ആദ്യ പ്രതികരണത്തെ മറയ്ക്കുന്നു. രോഗനിർണ്ണയത്തിനായി ആ പ്രാരംഭ പ്രതികരണം വെളിപ്പെടുത്തുക:
request = scrapy.Request(
'https://service.example/page',
callback=inspect_redirect,
meta={
'proxy': 'http://proxy.example:8080',
'dont_redirect': True,
'handle_httpstatus_list': [301, 302, 303, 307, 308],
},
)
സ്പൈഡറിന്റെ നിലവിലുള്ള start അല്ലെങ്കിൽ callback ഫ്ലോ വഴി ഈ അഭ്യർത്ഥന ഷെഡ്യൂൾ ചെയ്യുക. അനുവദനീയമായ പൊതു-പേജ് പരിശോധനയ്ക്ക് HTTP പ്രോക്സി പട്ടിക അഭ്യർത്ഥനയുടെ പ്രോക്സി URL-ന് സ്ഥാനാർത്ഥികൾ നൽകുന്നു. inspect_redirect പ്രതികരണത്തിന്റെ നിലയും Location ഹെഡറും രേഖപ്പെടുത്തണം, വീണ്ടും കണ്ണടച്ച് പിന്തുടരുന്നതിന് പകരം.
dont_redirect ഈ അഭ്യർത്ഥനയ്ക്ക് സ്വയമേവയുള്ള റീഡയറക്ട് നിർത്തുന്നു. handle_httpstatus_list നിർദ്ദിഷ്ട നിലകളെ HTTP-പിശക് ഫിൽട്ടറിംഗ് നിരസിക്കുന്നതിന് പകരം callback-ലേക്ക് എത്താൻ അനുവദിക്കുന്നു. ഈ ക്രമീകരണങ്ങൾ middleware-ന്റെ വ്യത്യസ്ത ഉത്തരവാദിത്തങ്ങളെ സംബന്ധിക്കുന്നു.
റീഡയറക്ട് എന്താണ് തിരഞ്ഞെടുക്കുന്നതെന്ന് പരിശോധിക്കുക: ഉദ്ദേശിച്ച കാനോനിക്കൽ URL, വ്യത്യസ്ത സ്കീം അല്ലെങ്കിൽ ഹോസ്റ്റ്നാമം, ലോഗിൻ പേജ്, അല്ലെങ്കിൽ ആവർത്തിക്കുന്ന ചക്രം. വിജയകരമായ കൈമാറ്റത്തിന് ശേഷം ലഭിച്ച 302, പ്രോക്സി കണക്ഷൻ തുറക്കാനാകാത്തതിൽ നിന്ന് വ്യത്യസ്തമായ നിരീക്ഷണമാണ്.
സാധാരണ റീഡയറക്ട് കൈകാര്യം പുനഃസ്ഥാപിക്കുമ്പോൾ, Scrapy പ്രതികരണത്തിന്റെ അഭ്യർത്ഥന മെറ്റാഡാറ്റയിൽ redirect_urls, redirect_reasons എന്നിവ വെളിപ്പെടുത്തുന്നു. ഇവ മുഴുവൻ ക്രോളിലും റീഡയറക്ടുകൾ പ്രവർത്തനരഹിതമാക്കി വയ്ക്കാതെ അന്തിമ ഫലത്തിലേക്കുള്ള പാത സംരക്ഷിക്കാൻ കഴിയും.
അന്തിമ പ്രതികരണം ആപ്ലിക്കേഷൻ ഉദ്ദേശിച്ച പേജ് സ്വയമേവ അല്ല. ലക്ഷ്യസ്ഥാനവും പ്രതികരണത്തിന്റെ ഉള്ളടക്കവും റൂട്ടിംഗ് രോഗനിർണ്ണയത്തോടൊപ്പം സൂക്ഷിക്കുക.