如何使用docker工具箱运行启动

时间:2019-04-15 23:59:30

标签: docker scrapy splash splash-js-render

我正在使用Windows 10家庭版,试图通过飞溅来从网络上刮除动态内容。有没有一种方法可以使用Docker工具箱而不是docker-desktop来处理启动画面?

docker工具箱说,它是无法运行docker-desktop的系统的替代选择。 docker桌面应用程序对于启动至关重要,它需要Windows 10专业版或企业版。

我找不到配置docker-toolbox进行启动的方法。在我的Windows 10家庭版上,是否有任何指南可以使用docker-toolbox配置启动功能。谢谢!

1 个答案:

答案 0 :(得分:0)

它也可以与docker-toolbox一起使用。只需遵循类似的过程,并确保您提供可通过以下方式访问的docker全局URL:

docker-machine ip default

如果您不知道该过程,这是一种方法,您可以使用scrapy-splash

在docker上运行启动画面

# 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-api