Scrapy վստահելի միջնորդ ծրագրաշար (proxy middleware)․ Request և None վերադարձվող արժեքներ
Scrapy վստահելի միջնորդ նշանակելուց հետո վերադարձրեք կառավարումը՝ նույն հայտը ներբեռնելուց առաջ ակամա վերապլանավորելու փոխարեն։
Միջնորդի հասցեն փոխվում է մատյանում։ Նպատակակետը երբեք չի երևում միջնորդի մուտքի մատյանում։ Ստուգեք՝ արդյոք ձեր middleware-ը թույլ է տալիս հայտին հասնել ներբեռնիչին ընդհանրապես։
Scrapy-ի ներբեռնիչի middleware-ում Request վերադարձնելը նշանակում է այդ հայտի վերապլանավորում։ Դա չի նշանակում «շարունակեք ուղարկել այս օբյեկտը հենց նոր փոփոխված մետատվյալներով»։
Միայն երթուղի ընտրող սելեկտորի համար կարևոր ձևն է․
def process_request(self, request):
request.meta['proxy'] = self.choose_proxy()
return None
Այս հատվածը ցույց է տալիս ներկայիս hook-ի ձևը․ օգտագործեք տեղադրված Scrapy թողարկման կողմից աջակցվող middleware ինտերֆեյսը։ Սելեկտորը պետք է վերադարձնի վավեր վերջնակետ և բացահայտ կերպով մշակի անհասանելի լողավազան։ Հասարակական միջնորդներ թույլատրող հրապարակային սողացողը կարող է HTTP թեկնածուներ վերցնել HTTP միջնորդների ցանկից այդ վերադարձվող արժեքի համար։
None վերադարձնելը թույլ է տալիս մնացած հարցումային middleware-ին և ներբեռնիչին շարունակել։ Մեկ այլ Request վերադարձնելը օգտակար է, երբ դուք դիտավորյալ փոխարինում կամ կրկնում եք աշխատանքը, բայց այն պահանջում է պատճառ և ելքի պայման։
Ռոտատորը, որն ամեն անգամ վերադարձնում է նույն հայտը, կարող է կրկին ու կրկին գործարկել իր ընտրության կոդը՝ երբեք չկապվելով նպատակակետին։ Ժամկետների ավելացումը կամ լրացուցիչ միջնորդ նավահանգիստների բացումը չի կարող վերանորոգել կառավարման հոսքի այդ օղակը։
Ուսումնասիրեք middleware-ի մուտքը, վերադարձի վարքը և առաջին իրական ցանցային փորձը որպես առանձին իրադարձություններ։ «Ընտրված միջնորդ» ասող մատյանի տողը հաստատում է միայն, որ սելեկտորը աշխատել է։ Այն չի հաստատում, որ ընտրված վերջնակետով հայտ է ուղարկվել։