טעינת הגדרות ה-proxy של Scrapy אל תוך סקריפט CrawlerProcess
העבר את get_project_settings() אל CrawlerProcess כאשר מפעיל עצמאי צריך להשתמש באותו middleware הורדה כמו scrapy crawl.
עכביש יכול להשתמש ב-proxy הצפוי תחת scrapy crawl ולעבור ישירות כאשר סקריפט Python מפעיל אותו. בדוק כיצד הסקריפט הזה בונה את ההגדרות שלו לפני שתשנה את שרת ה-proxy.
עבור פרויקט 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() בלבד אינה מייבאת את קובץ ההגדרות של הפרויקט רק משום שהסקריפט גם מייבא מחלקת עכביש. לכן middleware מותאם שהופעל על ידי DOWNLOADER_MIDDLEWARES עלול להיעדר מאותה הרצה.
טעינת ההגדרות מספקת את הרכיבים המוגדרים; היא אינה ממציאה כתובת proxy. ה-middleware של proxy HTTP של Scrapy עדיין זקוק ל-proxy הסביבה הרגיל שלו או לערך request.meta['proxy'] מפורש. בדוק ש-HTTPPROXY_ENABLED לא השבית אותו. לסריקה מורשית של עמודים ציבוריים, רשימת ה-proxy של HTTP מציעה מועמדים לערך proxy HTTP שנמסר דרך המטא-נתונים או הסביבה האלה.
השווה את ההגדרות הטעונות ואת ה-middleware הפעיל של המפעיל עם ההרצה משורת הפקודה. אם הם תואמים, המשך עם מטא-נתוני ה-proxy של הבקשה שנבחרה ועם שגיאת התעבורה בפועל.