Scrapy-proxyinstellingen laden in een CrawlerProcess-script
Geef get_project_settings() door aan CrawlerProcess wanneer een zelfstandige starter dezelfde downloader-middleware als scrapy crawl moet gebruiken.
Een spider kan onder scrapy crawl de verwachte proxy gebruiken en gaat direct wanneer een Python-script hem start. Controleer hoe dat script zijn instellingen opbouwt voordat u de proxyserver wijzigt.
Voor een bestaand Scrapy-project en de geregistreerde spider ervan:
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()
Vervang catalog door de spinnernaam van het project. Het project moet vindbaar zijn via zijn scrapy.cfg, of via een correct ingestelde SCRAPY_SETTINGS_MODULE die naar een importeerbare instellingenmodule wijst.
Alleen CrawlerProcess() bouwen importeert het instellingenbestand van het project niet, alleen omdat het script ook een spiderklasse importeert. Daardoor kan middleware die door DOWNLOADER_MIDDLEWARES is ingeschakeld in die run ontbreken.
Het laden van de instellingen levert de geconfigureerde componenten; het verzint geen proxyadres. Scrapy's HTTP-proxymiddleware heeft nog steeds zijn normale omgevingsproxy of een expliciete request.meta['proxy']-waarde nodig. Controleer dat HTTPPROXY_ENABLED deze niet heeft uitgeschakeld. Voor een toegestane crawl van openbare pagina's biedt de HTTP-proxylijst kandidaten voor een HTTP-proxywaarde die via die metadata of omgeving wordt aangeleverd.
Vergelijk de geladen instellingen en actieve middleware van de starter met de uitvoering vanaf de opdrachtregel. Als ze overeenkomen, ga verder met de proxymetadata van het gekozen verzoek en de werkelijke transportfout.