Scrapy proxy ayarlarını CrawlerProcess betiğine yükleme
Bağımsız bir başlatıcı scrapy crawl ile aynı indirici ara yazılımı kullanacaksa get_project_settings() çıktısını CrawlerProcess'e geçirin.
Bir örümcek scrapy crawl altında beklenen proxy'yi kullanabilir, Python betiğiyle başlatıldığında ise doğrudan gider. Proxy sunucusunu değiştirmeden önce o betiğin ayarlarını nasıl kurduğunu kontrol edin.
Mevcut bir Scrapy projesi ve kayıtlı örümceği için:
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 yerine projenin örümcek adını yazın. Proje, scrapy.cfg dosyasıyla ya da içe aktarılabilir bir ayar modülüne işaret eden doğru ayarlanmış SCRAPY_SETTINGS_MODULE ile bulunabilmelidir.
Yalnızca CrawlerProcess() oluşturmak, betik bir örümcek sınıfını da içe aktardığı için projenin ayar dosyasını içe aktarmaz. Bu nedenle DOWNLOADER_MIDDLEWARES ile etkinleştirilen özel ara yazılım o çalıştırmada bulunmayabilir.
Ayarları yüklemek yapılandırılmış bileşenleri sağlar; bir proxy adresi uydurmaz. Scrapy'nin HTTP proxy ara yazılımı hâlâ normal ortam proxy'sine veya açık bir request.meta['proxy'] değerine ihtiyaç duyar. HTTPPROXY_ENABLED ayarının onu devre dışı bırakmadığını kontrol edin. İzin verilen genel sayfa taraması için HTTP proxy listesi, bu üst veri veya ortam aracılığıyla verilen HTTP proxy değeri için adaylar sunar.
Başlatıcının yüklediği ayarları ve etkin ara yazılımı komut satırı çalıştırmasıyla karşılaştırın. Eşleşiyorlarsa seçilen isteğin proxy üst verisi ve gerçek taşıma hatasıyla devam edin.