CoderCastrov logo
CoderCastrov
Парсер

Настройка Selenium Firefox Docker с приложением Gunicorn Flask

Настройка Selenium Firefox Docker с приложением Gunicorn Flask
просмотров
1 мин чтение
#Парсер

Я выбрал Firefox 45.0.2 и Selenium 2.53.1, потому что могу доверять этой комбинации.

Давайте обсудим **Docker-file** по частям.

Установка Firefox

**# Установка Firefox**RUN wget [https://ftp.mozilla.org/pub/mozilla.org/firefox/releases/45.0.2/linux-x86_64/en-US/firefox-45.0.2.tar.bz2](https://ftp.mozilla.org/pub/mozilla.org/firefox/releases/45.0.2/linux-x86_64/en-US/firefox-45.0.2.tar.bz2)RUN tar -xjvf firefox*.tar.bz2RUN mv firefox /opt/firefoxRUN ln -sf /opt/firefox/firefox /usr/bin/firefox

Установка Xvfb(X Virtual framebuffer)

**# Установка xvfb**RUN apt-get install -y xvfb

Xvfb позволяет запускать графические приложения без отображения.

**# Переменные окружения**ENV DISPLAY=:10

Установка libasound2

RUN apt-get install -y [libasound2](https://launchpad.net/ubuntu/xenial/amd64/libasound2/1.1.0-0ubuntu1)

Установка Gunicorn

RUN apt-get update -yRUN apt-get install -y python3-pip build-essential python3-dev nginxRUN pip install -U gunicorn

Expose 5056 #порт для запуска Flask-приложения

Взгляните на Dockerfile сейчас

Dockerfile

Requirements.txt

selenium==2.53.1Flask==1.0.2

Настройка Flask api

Flask api

Простое Flask-приложение для извлечения HTML с помощью GET-запроса к URL.

Установка GUnicorn (Green Unicorn)

Это Python WSGI (Web Server Gateway Interface) HTTP-сервер. Чтобы запустить Flask API, мы должны создать файл wsgi.py и импортировать приложение.

wsgi.py

Теперь нам нужно запустить Xvfb в фоновом режиме каждый раз, когда вызывается экземпляр Docker, вместе с сервером Gunicorn. Лучший способ выполнить оба задания - использовать shell-скрипт с ENTRYPOINT в Docker.

start.sh

ENTRYPOINT [“sh”, “start.sh”]

Убедитесь, что Xvfb port и переменная среды $DISPLAY совпадают. В этом руководстве оба установлены как :10.

Полный код этого проекта можно увидеть здесь. Подробные шаги по созданию Docker-образа и запуску Flask API с веб-драйвером Selenium указаны в проекте.

Подтверждение

Когда все настроено, введите [http://localhost:5056/pageSource?url=https://httpbin.org/ip](http://localhost:5056/pageSource?url=https%3A%2F%2Fhttpbin.org%2Fip) в браузере.

Success

Спасибо за чтение! Если вам понравилась концепция, пожалуйста, не забудьте подтвердить мои навыки на Linkedin. Пожалуйста, поаплодируйте и поделитесь, если вам понравилось.