Scrapy ۋاكالەتچى ئوتتۇرا قاتلام: Request بىلەن None نىڭ قايتۇرۇش قىممىتى
Scrapy ۋاكالەتچىسىنى تەيىنلىگەندىن كېيىن كونترولنى قايتۇرۇڭ، ئوخشاش تەلەپنى چۈشۈرۈشتىن بۇرۇن خاتالىق بىلەن قايتا پىلانلىماڭ.
خاتىرىدە ۋاكالەتچى ئادرېسى ئۆزگىرىدۇ. نىشان ۋاكالەتچىنىڭ زىيارەت خاتىرىسىدە ھەرگىز كۆرۈنمەيدۇ. ئوتتۇرا قاتلىمىڭىزنىڭ تەلەپنى چۈشۈرگۈچكە يەتكۈزەلەيدىغان-يەتكۈزەلمەيدىغانلىقىنى تەكشۈرۈڭ.
Scrapy نىڭ چۈشۈرگۈچ ئوتتۇرا قاتلىمىدا Request نى قايتۇرۇش شۇ تەلەپنى قايتا پىلانلاشنى بىلدۈرىدۇ. ئۇ «ھازىر ئۆزگەرتكەن مېتا سانلىق مەلۇماتى بىلەن بۇ نەرسىنى ئەۋەتىشنى داۋاملاشتۇر» دېگەنلىك ئەمەس.
پەقەت يول تاللايدىغان تاللىغۇچ ئۈچۈن مۇھىم شەكىل:
def process_request(self, request):
request.meta['proxy'] = self.choose_proxy()
return None
بۇ پارچە ھازىرقى ئىلگەك شەكلىنى كۆرسىتىدۇ؛ قاچىلانغان Scrapy نەشرى قوللايدىغان ئوتتۇرا قاتلام كۆرۈنمە يۈزىنى ئىشلىتىڭ. تاللىغۇچ چوقۇم ئىناۋەتلىك ئاخىرقى نۇقتىنى قايتۇرۇشى ۋە ئىشلەتكىلى بولمايدىغان كۆلچەكنى ئوچۇق بىر تەرەپ قىلىشى كېرەك. ئاممىۋى ۋاسىتىچىلەرگە يول قويىدىغان ئاممىۋى تىرناق شۇ قايتۇرۇش قىممىتى ئۈچۈن HTTP ۋاكالەتچى تىزىملىكىدىن HTTP نامزاتلىرىنى ئالالايدۇ.
None نى قايتۇرۇش قالغان تەلەپ ئوتتۇرا قاتلىمى ۋە چۈشۈرگۈچنىڭ داۋاملىشىشىغا يول قويىدۇ. باشقا Request نى قايتۇرۇش خىزمەتنى قەستەن ئالماشتۇرغاندا ياكى قايتا سىناپ باققاندا پايدىلىق، ئەمما ئۇنىڭغا سەۋەب ۋە چېكىنىش شەرتى كېرەك.
ھەر قېتىم ئوخشاش تەلەپنى قايتۇرىدىغان ئايلاندۇرغۇچ نىشانغا ھەرگىز ئۇلىنىش قۇرمايلا ئۆزىنىڭ تاللاش كودىنى قايتا-قايتا ئىجرا قىلالايدۇ. ۋاقىت چېكىنى ئۇزارتىش ياكى تېخىمۇ كۆپ ۋاكالەتچى ئېغىزى ئېچىش بۇ كونترول ئېقىمى ھالقىسىنى ئوڭشىيالمايدۇ.
ئوتتۇرا قاتلامغا كىرىش، قايتۇرۇش ھەرىكىتى ۋە تۇنجى ھەقىقىي تور سىنىشىنى ئايرىم ۋەقەلەر سۈپىتىدە تەكشۈرۈڭ. «ۋاكالەتچى تاللاندى» دېگەن خاتىرە قۇرى پەقەت تاللىغۇچنىڭ ئىجرا بولغانلىقىنى ئىسپاتلايدۇ. تاللانغان ئاخىرقى نۇقتا بىلەن تەلەپ ئەۋەتىلگەنلىكىنى ئىسپاتلىيالمايدۇ.