Încărcarea setărilor de proxy Scrapy într-un script CrawlerProcess
Transmite get_project_settings() către CrawlerProcess atunci când un lansator autonom trebuie să folosească același middleware de descărcare ca scrapy crawl.
Un păianjen poate folosi proxy-ul așteptat sub scrapy crawl și merge direct atunci când este lansat de un script Python. Verifică modul în care acel script își construiește setările înainte de a schimba serverul proxy.
Pentru un proiect Scrapy existent și păianjenul său înregistrat:
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()
Înlocuiește catalog cu numele păianjenului proiectului. Proiectul trebuie să fie detectabil prin scrapy.cfg sau printr-un SCRAPY_SETTINGS_MODULE setat corect care indică un modul de setări importabil.
Construirea doar a CrawlerProcess() nu importă fișierul de setări al proiectului doar pentru că scriptul importă și o clasă de păianjen. Prin urmare, un middleware personalizat activat de DOWNLOADER_MIDDLEWARES poate lipsi din acea rulare.
Încărcarea setărilor furnizează componentele configurate; nu inventează o adresă de proxy. Middleware-ul de proxy HTTP al Scrapy are în continuare nevoie de proxy-ul obișnuit de mediu sau de o valoare request.meta['proxy'] explicită. Verifică dacă HTTPPROXY_ENABLED nu l-a dezactivat. Pentru o parcurgere permisă a paginilor publice, lista de proxy-uri HTTP oferă candidați pentru o valoare de proxy HTTP furnizată prin acele metadate sau prin mediu.
Compară setările încărcate și middleware-ul activ ale lansatorului cu rularea din linia de comandă. Dacă se potrivesc, continuă cu metadatele de proxy ale cererii selectate și cu eroarea reală de transport.