Создание парсинга на Django с упаковкой в Docker и размещением на dockerhosting.ru
В данной статье рассмотрим процесс создания парсера на Django, его упаковку в Docker-контейнер и последующее развертывание на платформе dockerhosting.ru.
Установка Django и создание проекта
pip install django requests beautifulsoup4
django-admin startproject parser_project
cd parser_project
python manage.py startapp parser
Пример простого парсера (в parser/views.py
)
import requests
from bs4 import BeautifulSoup
from django.http import JsonResponse
def parse_example(request):
url = "https://example.com"
r = requests.get(url)
soup = BeautifulSoup(r.text, "html.parser")
title = soup.title.string if soup.title else "No title"
return JsonResponse({"title": title})
Добавим URL (в parser_project/urls.py
)
from django.contrib import admin
from django.urls import path
from parser.views import parse_example
urlpatterns = [
path('admin/', admin.site.urls),
path('parse/', parse_example),
]
Упаковка проекта в Docker
Создайте следующие файлы в корне проекта:
Dockerfile
# Базовый образ
FROM python:3.10-slim
# Устанавливаем зависимости
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1
WORKDIR /app
COPY requirements.txt /app/
RUN pip install --upgrade pip && pip install -r requirements.txt
COPY . /app/
CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"]
requirements.txt
django
requests
beautifulsoup4
docker-compose.yml
version: '3.9'
services:
web:
build: .
ports:
- "8000:8000"
volumes:
- .:/app
Сборка и запуск локально
docker-compose build
docker-compose up
Откройте браузер и перейдите по адресу http://localhost:8000/parse, чтобы проверить работу парсера.
Размещение на DockerHost.ru
1. Зарегистрируйтесь или войдите на dockerhosting.ru
Платформа предоставляет готовые Docker-окружения и быстрое развертывание.
2. Загрузите ваш проект
-
Вы можете использовать
scp
,rsync
или Git. -
Либо просто загрузите ZIP-архив с проектом через интерфейс.
3. Соберите контейнер через веб-интерфейс или консоль
docker build -t myparser .
docker run -d -p 8000:8000 myparser
На dockerhosting.ru вы получите выделенный IP или домен
Автор: Евгений Морковин
0 комментариев