Будет работать и с 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-апи