Scrapy პროქსი შუამავალი პროგრამა: Request და None დაბრუნების მნიშვნელობები
დააბრუნეთ მართვა Scrapy პროქსის მინიჭების შემდეგ, იმის ნაცვლად, რომ იგივე მოთხოვნა ჩამოტვირთვამდე უნებლიედ ხელახლა დაგეგმოთ.
პროქსის მისამართი იცვლება ლოგში. დანიშნულება არასდროს ჩნდება პროქსის წვდომის ლოგში. შეამოწმეთ, გადის თუ არა თქვენი შუამავალი პროგრამა მოთხოვნას ჩამომტვირთავამდე.
Scrapy-ის ჩამომტვირთავის შუამავალ პროგრამაში Request-ის დაბრუნება ნიშნავს ამ მოთხოვნის ხელახლა დაგეგმვას. ეს არ ნიშნავს „გააგრძელეთ ამ ობიექტის გაგზავნა იმ მეტამონაცემებით, რომელიც ახლახან შევცვალე“.
სელექტორისთვის, რომელიც მხოლოდ მარშრუტს ირჩევს, მნიშვნელოვანი ფორმაა:
def process_request(self, request):
request.meta['proxy'] = self.choose_proxy()
return None
ეს ფრაგმენტი გვიჩვენებს hook-ის მიმდინარე ფორმას; გამოიყენეთ შუამავალი პროგრამის ინტერფეისი, რომელსაც დაყენებული Scrapy-ის ვერსია მხარს უჭერს. სელექტორმა უნდა დააბრუნოს სწორი საბოლოო წერტილი და ცხადად დაამუშაოს მიუწვდომელი პული. საჯარო შუამავლების დაშვების საჯარო ძიებას შეუძლია HTTP კანდიდატების აღება HTTP პროქსების სიიდან ამ დაბრუნების მნიშვნელობისთვის.
None-ის დაბრუნება საშუალებას აძლევს დარჩენილ მოთხოვნის შუამავალ პროგრამასა და ჩამომტვირთავს გააგრძელოს. სხვა Request-ის დაბრუნება სასარგებლოა, როცა განზრახ ცვლით ან ხელახლა ცდილობთ სამუშაოს, მაგრამ საჭიროა მიზეზი და გასვლის პირობა.
როტატორი, რომელიც ყოველ ჯერზე იმავე მოთხოვნას აბრუნებს, შეიძლება არაერთხელ გაუშვას საკუთარი შერჩევის კოდი დანიშნულებასთან კავშირის დამყარების გარეშე. დროის ლიმიტების გაზრდა ან მეტი პროქსი პორტის გახსნა ვერ შეაკეთებს ამ მართვის ნაკადის ციკლს.
გამოიკვლიეთ შუამავალ პროგრამაში შესვლა, დაბრუნების ქცევა და პირველი ფაქტობრივი ქსელური მცდელობა ცალკეულ მოვლენებად. ლოგის ხაზი „პროქსი არჩეულია“ მხოლოდ იმას ადასტურებს, რომ სელექტორი მუშაობდა. ის არ ადასტურებს, რომ არჩეული საბოლოო წერტილით მოთხოვნა გაიგზავნა.