Когда я запускаю свою конфигурацию scrapy / splash на Docker, scrapy не может подключиться к Splash, из-за ошибки 403/503 .
Это мой файл docker-compose:
scraper:
build:
context: ./my_scraper
image: "my_scraper"
ports:
- 6800:6800
depends_on:
- splash
splash:
image: "scrapinghub/splash"
ports:
- 8050:8050
- 5023:5023
expose:
- 8050
- 5023
Докер-файл для скребка выглядит следующим образом:
FROM python:3.7
WORKDIR /my_scraper
COPY requirements.txt /tmp/
RUN pip install -r /tmp/requirements.txt
COPY . .
EXPOSE 6800
CMD ["scrapyd", "--pidfile="]
И мои настройки заставки:
SPLASH_URL = 'http://splash:8050'
Остальные настройки в моем скребкев соответствии с рекомендациями документации по scrapy-splash.
Однако, когда я запускаю свой скребок, он не может подключиться к Splash и выдает эту ошибку:
2018-12-29 13:24:14 [scrapy.core.engine] INFO: Spider opened
2018-12-29 13:24:14 [scrapy.extensions.logstats] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min)
2018-12-29 13:24:14 [sorg] INFO: Spider opened: wiki_scraper
2018-12-29 13:24:14 [sorg] INFO: Spider opened: wiki_scraper
2018-12-29 13:24:14 [scrapy.extensions.telnet] DEBUG: Telnet console listening on 127.0.0.1:6023
2018-12-29 13:24:14 [scrapy.downloadermiddlewares.retry] DEBUG: Retrying <GET https://www.wikipedia.org/ via http://splash:8050/render.html> (failed 1 times): 503 Service Unavailable
2018-12-29 13:24:14 [scrapy.core.engine] DEBUG: Crawled (403) <GET https://www.wikipedia.org/ via http://splash:8050/render.html> (referer: None)
2018-12-29 13:24:14 [scrapy.spidermiddlewares.httperror] INFO: Ignoring response <403 https://www.wikipedia.org/>: HTTP status code is not handled or not allowed
2018-12-29 13:24:14 [scrapy.core.engine] INFO: Closing spider (finished)
2018-12-29 13:24:14 [scrapy.core.engine] ERROR: Scraper close failure
У меня была похожая проблема, когдасоздание образа скребка, но это было решено с помощью команды expose в файле docker.Тем не менее, я использую готовый образ для Splash, поэтому я несколько озадачен тем, почему я не могу подключиться к нему.Любая помощь будет принята с благодарностью.
РЕДАКТИРОВАТЬ: Когда я использую Docker IP "192.168.0.14" в настройке SPLASH_URL, я получаю другую ошибку, указывая (по крайней мере, я думаю ...) сбой из-затайм-аут, а не обслуживание:
2018-12-29 14:36:28 [scrapy.downloadermiddlewares.retry] DEBUG: Retrying <GET https://www.wikipedia.org/ via http://192.168.0.14:8050/render.html> (failed 2 times): 504 Gateway Time-out
2018-12-29 14:36:30 [scrapy.extensions.logstats] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min)
2018-12-29 14:37:23 [scrapy.downloadermiddlewares.retry] DEBUG: Gave up retrying <GET https://www.wikipedia.org/ via http://192.168.0.14:8050/render.html> (failed 3 times): User timeout caused connection failure: Getting http://192.168.0.14:8050/render.html took longer than 55.0 seconds..