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 ପ୍ରକାଶ କରେ। ଏହି ଦୁଇଟି ସମଗ୍ର କ୍ରଲ ପାଇଁ ରିଡାଇରେକ୍ଟ ଅକ୍ଷମ ରଖିବା ବିନା ଅନ୍ତିମ ଫଳାଫଳ ପର୍ଯ୍ୟନ୍ତ ପଥ ସଂରକ୍ଷଣ କରିପାରେ।
ଅନ୍ତିମ ପ୍ରତିକ୍ରିୟା ସ୍ୱୟଂଚାଳିତ ଭାବରେ ଆପ୍ଲିକେସନର ଉଦ୍ଦିଷ୍ଟ ପୃଷ୍ଠା ନୁହେଁ। ଗନ୍ତବ୍ୟସ୍ଥଳ ଏବଂ ପ୍ରତିକ୍ରିୟାର ବିଷୟବସ୍ତୁକୁ ରାଉଟିଂ ନିଦାନ ସହିତ ରଖନ୍ତୁ।