Павук може використовувати очікуваний проксі під scrapy crawl і йде напряму, коли його запускає скрипт Python. Перевірте, як цей скрипт будує свої налаштування, перш ніж змінювати проксі-сервер.

Для наявного проєкту Scrapy та його зареєстрованого павука:

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

Замініть catalog назвою павука проєкту. Проєкт має бути виявним через свій scrapy.cfg або через правильно заданий SCRAPY_SETTINGS_MODULE, що вказує на модуль налаштувань, який можна імпортувати.

Створення лише CrawlerProcess() не імпортує файл налаштувань проєкту лише тому, що скрипт також імпортує клас павука. Тому власний проміжний шар, увімкнений через DOWNLOADER_MIDDLEWARES, може бути відсутнім у цьому запуску.

Завантаження налаштувань дає налаштовані компоненти; воно не вигадує адресу проксі. Проміжний шар HTTP-проксі Scrapy все ще потребує звичайного проксі середовища або явного значення request.meta['proxy']. Перевірте, що HTTPPROXY_ENABLED його не вимкнув. Для дозволеного обходу публічних сторінок список HTTP-проксі пропонує кандидатів для значення HTTP-проксі, переданого через ці метадані або середовище.

Порівняйте завантажені налаштування та активний проміжний шар запускача із запуском із командного рядка. Якщо вони збігаються, продовжуйте з метаданими проксі вибраного запиту та фактичною помилкою передавання.

Схожі статті