Язык: Python
Версия: 3,5-3,6
ОС: Windows 10 x64
Стек: selenium grid
, docker
, parallel
, REST
, parsing websites
Привет всем!
При написании парсера для нескольких веб-сайтов я столкнулся с несколькими проблемами:
- Мне нужно открыть более 30 экземпляров
chrome
.Затем в указанное время обновите их одновременно и загрузите некоторые данные в выходной словарь. - Веб-сайты совершенно разные.Большинство из них состоит из тонн
JS
, AJAX
, JQuery
и т. Д. Некоторые из них специально разработаны для того, чтобы избежать parsing
. - Я не могу использовать облака для улучшенияэффективность синтаксического анализа, разрешены только ресурсы локальных компьютеров (правила корпоративной защиты).
Мое решение было использовать Selenium Grid
на локальном компьютере с Docker
.
docker-compose.yml
:
version: '3.5'
services:
hub:
image: selenium/hub:3.14.0
ports:
- 4444:4444
chrome:
image: selenium/node-chrome-debug:3.14.0
depends_on:
- hub
environment:
- HUB_HOST=hub
$docker-compose scale chrome=30 hub=1
Моя текущая проблема заключается в том, что я не могу понять, как записать следующий цикл в Python
:
Концентратор -> (обновить) -> все контейнеры -> (передать данные в Hub) -> Hub ->
Не могли бы вы, пожалуйста, помочь с этим.Я думаю, что решение организует RESTful
запросов, но я не мог найти, как это сделать.