Charger les paramètres de proxy Scrapy dans un script CrawlerProcess
Passez get_project_settings() à CrawlerProcess lorsqu'un lanceur autonome doit utiliser le même middleware de téléchargement que scrapy crawl.
Une araignée peut utiliser le proxy attendu avec scrapy crawl et passer directement lorsqu'elle est lancée par un script Python. Vérifiez comment ce script construit ses réglages avant de changer le serveur proxy.
Pour un projet Scrapy existant et son araignée enregistrée :
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()
Remplacez catalog par le nom de l'araignée du projet. Le projet doit être découvrable via son scrapy.cfg, ou via un SCRAPY_SETTINGS_MODULE correctement défini pointant vers un module de réglages importable.
Construire seulement CrawlerProcess() n'importe pas le fichier de réglages du projet simplement parce que le script importe aussi une classe d'araignée. Un middleware personnalisé activé par DOWNLOADER_MIDDLEWARES peut donc être absent de cette exécution.
Charger les réglages fournit les composants configurés ; cela n'invente pas une adresse de proxy. Le middleware de proxy HTTP de Scrapy a toujours besoin de son proxy d'environnement habituel ou d'une valeur request.meta['proxy'] explicite. Vérifiez que HTTPPROXY_ENABLED ne l'a pas désactivé. Pour une exploration autorisée de pages publiques, la liste de proxys HTTP propose des candidats pour une valeur de proxy HTTP fournie via ces métadonnées ou l'environnement.
Comparez les réglages chargés et le middleware actif du lanceur avec l'exécution en ligne de commande. S'ils correspondent, poursuivez avec les métadonnées de proxy de la requête choisie et l'erreur de transport réelle.