Միջնորդի հասցեն փոխվում է մատյանում։ Նպատակակետը երբեք չի երևում միջնորդի մուտքի մատյանում։ Ստուգեք՝ արդյոք ձեր 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-ի մուտքը, վերադարձի վարքը և առաջին իրական ցանցային փորձը որպես առանձին իրադարձություններ։ «Ընտրված միջնորդ» ասող մատյանի տողը հաստատում է միայն, որ սելեկտորը աշխատել է։ Այն չի հաստատում, որ ընտրված վերջնակետով հայտ է ուղարկվել։

Առնչվող հոդվածներ