Scrapy-ის პროქსის პარამეტრების ჩატვირთვა CrawlerProcess სკრიპტში
გადაეცით get_project_settings() CrawlerProcess-ს, როცა დამოუკიდებელმა გამშვებმა იგივე ჩამოტვირთვის middleware უნდა გამოიყენოს, რაც scrapy crawl-მა.
ობობას შეუძლია მოსალოდნელი პროქსის გამოყენება scrapy crawl-ის ქვეშ და პირდაპირ გადასვლა, როცა მას Python სკრიპტი უშვებს. სანამ პროქსის სერვერს შეცვლით, შეამოწმეთ, როგორ აწყობს ეს სკრიპტი თავის პარამეტრებს.
არსებული Scrapy პროექტისა და მისი რეგისტრირებული ობობისთვის:
from scrapy.crawler import CrawlerProcess
from scrapy.utils.project import get_project_settings
settings = get_project_settings()
process = CrawlerProcess(settings=settings)
process.crawl('catalog')
process.start()
შეცვალეთ catalog პროექტის ობობის სახელით. პროექტი უნდა იყოს აღმოჩენადი თავისი scrapy.cfg-ით ან სწორად დაყენებული SCRAPY_SETTINGS_MODULE-ით, რომელიც მიუთითებს იმპორტირებად პარამეტრების მოდულზე.
მხოლოდ CrawlerProcess()-ის აწყობა არ აიმპორტებს პროექტის პარამეტრების ფაილს მხოლოდ იმიტომ, რომ სკრიპტი ობობის კლასსაც აიმპორტებს. შესაბამისად, DOWNLOADER_MIDDLEWARES-ით ჩართული მორგებული middleware შეიძლება ამ გაშვებაში არ იყოს.
პარამეტრების ჩატვირთვა აწვდის კონფიგურირებულ კომპონენტებს; ის პროქსის მისამართს არ იგონებს. Scrapy-ის HTTP პროქსის middleware-ს კვლავ სჭირდება ჩვეულებრივი გარემოს პროქსი ან მკაფიო request.meta['proxy'] მნიშვნელობა. შეამოწმეთ, რომ HTTPPROXY_ENABLED-მა ის არ გამორთო. ნებადართული საჯარო გვერდების დათვალიერებისთვის HTTP პროქსების სია გვთავაზობს კანდიდატებს HTTP პროქსის მნიშვნელობისთვის, რომელიც ამ მეტამონაცემებით ან გარემოთი მიეწოდება.
შეადარეთ გამშვების ჩატვირთული პარამეტრები და აქტიური middleware ბრძანების ხაზიდან გაშვებას. თუ ემთხვევა, გააგრძელეთ არჩეული მოთხოვნის პროქსის მეტამონაცემებითა და ფაქტობრივი ტრანსპორტის შეცდომით.