Как запустить всплеск с помощью панели инструментов Docker - PullRequest
0 голосов
/ 16 апреля 2019

Я пробую scrap with splash для удаления динамического контента из Интернета, я нахожусь на Windows 10 Home Edition.Есть ли способ использовать набор инструментов Docker вместо docker-desktop для работы с заставкой?

В наборе инструментов Docker говорится, что это альтернатива для систем, которые не могут запускать docker-desktop.Настольное приложение docker необходимо для заставки, для него требуется Windows 10 Pro или корпоративная версия.

Я не смог найти способ настройки docker-toolbox для заставки.Есть ли какие-либо рекомендации, которые могут помочь при настройке заставки с помощью docker-toolbox в моей домашней версии Windows 10.Спасибо!

1 Ответ

1 голос
/ 16 апреля 2019

Будет работать и с docker-toolbox.Просто следуйте аналогичному процессу и убедитесь, что вы указали глобальный URL-адрес докера, к которому вы можете получить доступ:

docker-machine ip default

Если вы не знаете процесс, вот один из способов, который вы можете использоватьscrapy-splash:

Запустить всплеск на докере

# Install Docker 'http://docker.io/'
# Pull the image:
    $ sudo docker pull scrapinghub/splash
# Start the container:
    $ sudo docker run -p 8050:8050 -p 5023:5023 scrapinghub/splash
# Splash is now available at 192.168.99.100 at ports 8050 (http) and 5023 (telnet).

Вставить в scrapy.setting

# splash for scripting or js dependent web-page
# Access docker-machine ip=> docker-machine ip default

SPLASH_URL = '<docker-hosted machine ip:port>' # docker url
#SPLASH_URL = 'http://192.168.99.100:8050' # docker url

DOWNLOADER_MIDDLEWARES = {
    'scrapy_splash.SplashCookiesMiddleware': 723,
    'scrapy_splash.SplashMiddleware': 725,
    'scrapy.downloadermiddlewares.httpcompression.HttpCompressionMiddleware': 810,
}

SPIDER_MIDDLEWARES = {
    'scrapy_splash.SplashDeduplicateArgsMiddleware': 100,
}

DUPEFILTER_CLASS = 'scrapy_splash.SplashAwareDupeFilter'

парсинг URL-адреса .. добавить в метасистему передсдача в URL

response.meta['splash'] = {'args': { 'html': 1, 'png': 1}, 'endpoint': 'render.json'}
yield scrapy.Request(response.url, callback=self.parse_page, meta=response.meta)

Для получения более подробной информации проверьте этот документ:
javascript-in-scrapy-with-splash
splash-through-http-апи

...