یک خزنده می‌تواند زیر scrapy crawl از پروکسی مورد انتظار استفاده کند و وقتی اسکریپت پایتون آن را اجرا می‌کند مستقیم برود. پیش از تغییر سرور پروکسی بررسی کنید که آن اسکریپت تنظیماتش را چگونه می‌سازد.

برای یک پروژهٔ موجود 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 فعال شده ممکن است در آن اجرا غایب باشد.

بارگذاری تنظیمات اجزای پیکربندی‌شده را فراهم می‌کند؛ نشانی پروکسی نمی‌سازد. میان‌افزار پروکسی HTTP در Scrapy هنوز به پروکسی معمول محیط یا مقدار صریح request.meta['proxy'] نیاز دارد. بررسی کنید که HTTPPROXY_ENABLED آن را غیرفعال نکرده باشد. برای خزش مجاز صفحات عمومی، فهرست پروکسی HTTP نامزدهایی برای مقدار پروکسی HTTP که از طریق آن فراداده یا محیط داده می‌شود ارائه می‌کند.

تنظیمات بارگذاری‌شده و میان‌افزار فعال راه‌انداز را با اجرای خط فرمان مقایسه کنید. اگر مطابقت داشتند، با فرادادهٔ پروکسی درخواست انتخاب‌شده و خطای واقعی انتقال ادامه دهید.

مقالات مرتبط