Scrapy proksi sozlamalarini CrawlerProcess skriptiga yuklash
Mustaqil ishga tushirgich scrapy crawl kabi bir xil yuklab olish middleware'idan foydalanishi kerak bo'lsa, get_project_settings() ni CrawlerProcess ga uzating.
O'rgimchak scrapy crawl ostida kutilgan proksidan foydalanishi mumkin, Python skripti ishga tushirganda esa to'g'ridan-to'g'ri ketadi. Proksi serverini o'zgartirishdan oldin ushbu skript sozlamalarini qanday tuzishini tekshiring.
Mavjud Scrapy loyihasi va uning roʻyxatdan oʻtgan oʻrgimchagi uchun:
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 o'rniga loyihaning o'rgimchak nomini yozing. Loyiha o'zining scrapy.cfg orqali yoki import qilinadigan sozlamalar moduliga ishora qiluvchi to'g'ri sozlangan SCRAPY_SETTINGS_MODULE orqali topilishi kerak.
Faqat CrawlerProcess() yaratish skript o'rgimchak sinfini ham import qilgani uchungina loyiha sozlamalari faylini import qilmaydi. Shuning uchun DOWNLOADER_MIDDLEWARES orqali yoqilgan moslashtirilgan middleware ushbu ishga tushirishda bo'lmasligi mumkin.
Sozlamalarni yuklash sozlangan komponentlarni taqdim etadi; u proksi manzilini o'ylab topmaydi. Scrapy HTTP proksi middleware'i hali ham odatiy muhit proksisini yoki aniq request.meta['proxy'] qiymatini talab qiladi. HTTPPROXY_ENABLED uni o'chirmaganini tekshiring. Ruxsat etilgan ommaviy sahifalarni skanerlash uchun HTTP proksi ro'yxati o'sha metadata yoki muhit orqali beriladigan HTTP proksi qiymatiga nomzodlar taklif qiladi.
Ishga tushirgichning yuklangan sozlamalari va faol middleware'ini buyruq qatoridan ishga tushirish bilan solishtiring. Agar ular mos kelsa, tanlangan so'rovning proksi metadatası va haqiqiy transport xatosi bilan davom eting.