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.

Articole similare