Как установить время ожидания всплеска в scrapy-splash?

Я использую scrapy-splash для сканирования веб-страницы и запускаю службу splash на докере.

общепринято:

docker run -p 8050:8050 scrapinghub/splash --max-timeout 3600

Но у меня ошибка 504.

"error": {"info": {"timeout": 30}, "description": "Timeout exceeded rendering page", "error": 504, "type": "GlobalTimeoutError"}

Хотя я пытаюсь добавить splash.resource_timeout, request:set_timeout или SPLASH_URL = 'http://localhost:8050?timeout=1800.0', ничего не изменилось.

Спасибо за помощь.


person Jhon Smith    schedule 19.06.2017    source источник


Ответы (1)


Я использую пакет scrapy-splash и устанавливаю тайм-аут в args параметре SplashRequest следующим образом:

yield scrapy_splash.SplashRequest(
    url, self.parse, endpoint='execute',
    args={'lua_source': script, 'timeout': 3600})

Меня устраивает.

person Tomáš Linhart    schedule 19.06.2017
comment
Я получил ошибку 400 из-за этой настройки. Я не знаю почему - person Aminah Nuraini; 31.01.2018
comment
Это на самом деле не объясняет, почему его тайм-аут. Установка тайм-аута на 3600 просто скрывает ошибки ... Что-то все еще идет серьезно не так, если выполнение занимает 3600 секунд. - person Marcus Lind; 03.07.2018
comment
Ах, у меня ошибка 400, если я установил тайм-аут больше, чем максимальный тайм-аут, установленный при запуске сервера Splash. Максимальный тайм-аут по умолчанию - 90. - person Aminah Nuraini; 16.08.2018