En edderkopp kan bruke den forventede proxyen under scrapy crawl og gå direkte når den startes av et Python-skript. Sjekk hvordan skriptet bygger innstillingene sine før du endrer proxyserveren.

For et eksisterende Scrapy-prosjekt og dets registrerte edderkopp:

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()

Erstatt catalog med prosjektets edderkoppnavn. Prosjektet må kunne oppdages via sin scrapy.cfg, eller via en riktig satt SCRAPY_SETTINGS_MODULE som peker på en importerbar innstillingsmodul.

Å bygge CrawlerProcess() alene importerer ikke prosjektets innstillingsfil bare fordi skriptet også importerer en edderkoppklasse. Derfor kan middleware aktivert av DOWNLOADER_MIDDLEWARES mangle i den kjøringen.

Innlasting av innstillingene gir de konfigurerte komponentene; den finner ikke opp en proxyadresse. Scrapys HTTP-proxymiddleware trenger fortsatt sin vanlige miljøproxy eller en eksplisitt request.meta['proxy']-verdi. Sjekk at HTTPPROXY_ENABLED ikke har deaktivert den. For en tillatt gjennomgang av offentlige sider tilbyr HTTP-proxylisten kandidater for en HTTP-proxyverdi som leveres via disse metadataene eller miljøet.

Sammenlign oppstarterens innlastede innstillinger og aktive middleware med kommandolinjekjøringen. Hvis de stemmer, fortsett med proxy-metadataene til den valgte forespørselen og den faktiske transportfeilen.

Relaterte artikler