Skip to content

Взаимодействие с динамическим контентом. Использование Selenium

License

Notifications You must be signed in to change notification settings

AntoScher/L31_PS_03_JS_Selenium

Repository files navigation

Wikipedia Navigator

Интерактивный навигатор по Wikipedia с автоматизированным поиском и навигацией по статьям.


Описание

Wikipedia Navigator - это Python-приложение, использующее Selenium WebDriver для автоматизации взаимодействия с Wikipedia. Проект решает задачу упрощения навигации по статьям Wikipedia, позволяя пользователям быстро находить нужную информацию, переходить между разделами статей и исследовать связанные страницы.

Проект предназначен для исследователей, студентов, контент-аналитиков и всех, кто работает с большими объемами информации на Wikipedia.


Функциональные возможности

  • Автоматический поиск: Поиск статей по ключевым словам с автоматическим переходом на страницу результата
  • Навигация по разделам: Отображение оглавления статьи и возможность перехода к конкретным разделам
  • Просмотр параграфов: Структурированный вывод текстового содержимого статей
  • Связанные страницы: Отображение и переход по внутренним ссылкам Wikipedia
  • Интерактивное меню: Удобный консольный интерфейс для навигации
  • REST API: Полнофункциональный API для интеграции с другими системами
  • Веб-интерфейс: Современный веб-интерфейс для удобного использования
  • Кэширование: Redis-кэширование для ускорения работы и снижения нагрузки
  • Docker поддержка: Готовая контейнеризация для быстрого развертывания
  • CI/CD пайплайн: Автоматическое тестирование и развертывание с GitHub Actions
  • Логирование: Подробное логирование всех операций и ошибок
  • Экспорт данных: Сохранение результатов в JSON и CSV форматах
  • Конфигурация: Гибкая настройка параметров приложения
  • Модульные тесты: Полное покрытие тестами для обеспечения качества
  • Безопасность: Проверка безопасности кода и зависимостей
  • Автоматические релизы: Создание релизов при добавлении тегов

Состав и архитектура

Основные модули

  • main.py: Основной модуль с интерактивным интерфейсом и функциями навигации
  • api_server.py: Flask API сервер с веб-интерфейсом
  • cache_manager.py: Менеджер кэширования с Redis
  • config.py: Конфигурационный файл с настройками приложения
  • logger.py: Модуль логирования для отслеживания работы приложения
  • data_manager.py: Менеджер для работы с данными и экспорта результатов

Демонстрационные модули

  • main_Learn_test.py: Демонстрационный модуль с примерами работы с DOM
  • test.py: Модуль для тестирования корректности настройки Selenium WebDriver

Тестирование

  • tests/: Директория с модульными тестами
  • pytest.ini: Конфигурация для pytest

Инфраструктура

  • Dockerfile: Конфигурация Docker контейнера
  • docker-compose.yml: Оркестрация сервисов
  • .github/workflows/: GitHub Actions workflows
    • ci-cd.yml: Основной CI/CD пайплайн
    • pr-check.yml: Проверка pull requests
    • release.yml: Автоматические релизы
  • Makefile: Автоматизация команд разработки

Документация

  • dom.png & selenium.png: Скриншоты страниц для демонстрации функциональности

Архитектура построена на принципах модульности и микросервисов: каждый компонент отвечает за конкретную функциональность, что обеспечивает легкое расширение, тестирование и развертывание.


Технологии и инструменты

  • Языки программирования: Python 3.x
  • Фреймворки и библиотеки: Selenium WebDriver, webdriver-manager
  • Веб-технологии: HTML, CSS, JavaScript (для взаимодействия с DOM)
  • Дополнительные утилиты: time, random (для задержек и случайного выбора)
  • Управление зависимостями: requirements.txt

Установка и запуск

Быстрый старт с Docker

# Клонировать репозиторий
git clone https://github.com/your-org/wikipedia-navigator.git
cd wikipedia-navigator

# Запустить с Docker Compose
docker-compose up -d

# Открыть веб-интерфейс
open http://localhost:8000

Локальная установка

  1. Клонировать репозиторий

    git clone https://github.com/your-org/wikipedia-navigator.git
    cd wikipedia-navigator
  2. Установить зависимости

    make install
    # или
    pip install -r requirements.txt
  3. Запустить Redis (для кэширования)

    docker run -d -p 6379:6379 redis:7-alpine
  4. Запустить API сервер

    make api
    # или
    python api_server.py
  5. Запустить CLI приложение

    make cli
    # или
    python main.py

Полезные команды

# Показать все доступные команды
make help

# Запустить тесты
make test

# Проверить код линтером
make lint

# Проверить безопасность
make security

# Собрать Docker образ
make docker-build

# Показать статистику
make stats

# Проверить здоровье сервиса
make health

Коммерческое предложение

Тарифные планы

Пакет Что включено Стоимость (USD/год)
Basic Базовые функции навигации по Wikipedia $99
Standard Расширенная аналитика, API доступ $299
Enterprise Индивидуальные модули, обучение, SLA 99.9% По запросу

Ценностное предложение

  • Сокращение времени на поиск информации в Wikipedia до 70%
  • Увеличение эффективности исследований за счёт автоматизации навигации
  • Гибкая модульная архитектура под любые задачи веб-скрапинга

Потенциальный рынок

  • Образовательный сектор: Студенты и преподаватели для быстрого доступа к информации
  • Исследовательские организации: Аналитики и исследователи для сбора данных
  • Контент-агентства: Копирайтеры и редакторы для изучения тематик
  • IT-компании: Разработчики для изучения технологий и концепций

Рынок решений для автоматизации веб-взаимодействия растет на 15% ежегодно.


Преимущества

  • Быстрое развёртывание без сложной настройки
  • Масштабируемая архитектура для добавления новых функций
  • Открытый код и отсутствие привязки к вендорам
  • Полная автоматизация навигации по Wikipedia
  • Интуитивно понятный консольный интерфейс

Контакты


Лицензия

Проект распространяется под лицензией MIT.

About

Взаимодействие с динамическим контентом. Использование Selenium

Resources

License

Stars

Watchers

Forks

Packages

No packages published