Scrapy AutoThrottle პროქსის გავლით: სლოტები და შეყოვნება
შეინახეთ სამიზნე საიტის ჩამოტვირთვის სლოტები პროქსის მარშრუტებისგან ცალკე და შეყოვნება განმარტეთ როგორც დაკვირვებული მოთხოვნის გზა.
ნაგულისხმევად Scrapy ჩამოტვირთვის სლოტებს ანიჭებს მოთხოვნის URL-ის დომენის მიხედვით. მოთხოვნაზე HTTP პროქსის მიცემა არ აქცევს ამ URL-ს პროქსის ჰოსტის სახელად. ამიტომ სხვადასხვა საიტზე მიმართული მოთხოვნები შეიძლება ინარჩუნებდნენ სხვადასხვა სლოტს ერთი შუამავლის გაზიარებისას.
AutoThrottle არეგულირებს თითოეული სლოტის დაყოვნებას დაკვირვებული ჩამოტვირთვის შეყოვნების მიხედვით. დომენის მიხედვით პარალელურობის სტანდარტული ლიმიტი და ჩამოტვირთვის მინიმალური დაყოვნება კვლავ მოქმედებს.
ალგორითმის შეცვლამდე შეამოწმეთ დაჯგუფება
მორგებულ middleware-ს შეუძლია request.meta["download_slot"]-ის მინიჭება, რითაც ცვლის სლოტის ჩვეულებრივ არჩევანს. ზოგიერთი პროქსის გაფართოება იყენებს საკუთარ დაჯგუფებას. შეამოწმეთ ეს პარამეტრები, თუ დაუკავშირებელი საიტები ერთ შემზღუდველს იზიარებენ.
პირიქით, ყოველი პროქსისთვის განსხვავებული სლოტის მინიჭებამ შეიძლება რამდენიმე პროქსის ერთდროულად ერთსა და იმავე სამიზნესთან დაკავშირების საშუალება მისცეს. ამან შეიძლება დაარღვიოს საიტის მასშტაბის ლიმიტი, რომელიც მცოცავს უნდა დაეცვა. აირჩიეთ სლოტის გასაღები დაცული რესურსის მიხედვით.
შეყოვნება მოიცავს თქვენს მიერ გამოყენებულ გზას
Scrapy ზომავს შეყოვნებას მოთხოვნის გაგზავნიდან HTTP სათაურების მიღებამდე. პროქსის გავლით გადატანილ მოთხოვნაში ამ დაკვირვებაში შეიძლება შევიდეს შუამავლის რიგისა და გადაცემის დაყოვნება. AutoThrottle არ იღებს ცალკე, მხოლოდ წყაროს დამუშავების დროს.
პარალელურობის გაზრდა ვერ აიძულებს ამ გაზომვას საიტის იზოლირება. შეინახეთ სამიზნის მიმართ ზრდილობა და პროქსის სიმძლავრე ცალკე ლიმიტებად, როცა ორივე მნიშვნელოვანია. გაზიარებულ პროქსის შეიძლება დასჭირდეს დამატებითი პარალელურობის ბიუჯეტი სამიზნე სლოტებში, ხოლო თითოეული სამიზნე ინარჩუნებს საკუთარ სიჩქარის პოლიტიკას.