docs: up readme
This commit is contained in:
parent
9788b5aa4e
commit
69b22c8c30
66
README.md
66
README.md
@ -1,12 +1,68 @@
|
||||
|
||||
# Tempora
|
||||
|
||||
Новицкий Глеб Павлович
|
||||
|
||||
Терехов Павел Сергеевич
|
||||
|
||||
```
|
||||
____________ ______ ____ ___ ___
|
||||
/_ __/ __/ |/ / _ \/ __ \/ _ \/ _ |
|
||||
/ / / _// /|_/ / ___/ /_/ / , _/ __ |
|
||||
/_/ /___/_/ /_/_/ \____/_/|_/_/ |_|
|
||||
Система мониторинга утечек данных предназначена для выявления инцидентов, связанных с публикацией конфиденциальной информации в открытых источниках (форумы, даркнет, Telegram-каналы). Система осуществляет непрерывный сбор, анализ и визуализацию упоминаний, связанных с потенциальными утечками.
|
||||
|
||||
Проект разработан в рамках учебной практики студентом направления «Информационная безопасность автоматизированных систем».
|
||||
```
|
||||
├── Driver/ Основной компонент для работы с веб-ресурсами
|
||||
│ ├── chrome_proxy.py Работа с Chrome через undetected-chromedriver + прокси
|
||||
│ └── driver_creator.py Создание и настройка экземпляра драйвера
|
||||
├── Tasks/ Модуль задач парсинга
|
||||
│ ├── forum_crawler.py Парсинг данных с форумов
|
||||
│ └── tg_crawler.py Парсинг Telegram-каналов
|
||||
├── Utils/ Вспомогательные утилиты
|
||||
│ └── logg.py Логирование работы системы
|
||||
├── Web/ Веб-интерфейс
|
||||
│ ├── Static/ CSS/JS/Изображения
|
||||
│ ├── Templates/ HTML-шаблоны
|
||||
│ └── app.py Flask приложение
|
||||
└── Основные файлы:
|
||||
├── .env Конфигурации, секреты приложения
|
||||
├── .gitignore Игнорируемые файлы для Git
|
||||
├── celery_app.py Конфигурация Celery
|
||||
├── celery_beat.py Планировщик задач Celery
|
||||
├── initiator.py Точка входа
|
||||
├── requirements.txt Зависимости Python
|
||||
└── README.md Описание проекта
|
||||
```
|
||||
### Основные функции
|
||||
|
||||
* Мониторинг 3 телеграм каналов, одного форума
|
||||
|
||||
* Визуализация данных на веб-интерфейсе
|
||||
* Централизованное логирование и уведомления об ошибках
|
||||
|
||||
|
||||
### Запуск проекта
|
||||
|
||||
pip install -r requirements.txt
|
||||
|
||||
В отдельных окнах
|
||||
|
||||
python celery_beat.py
|
||||
python initiator.py
|
||||
|
||||
### Зависимости
|
||||
|
||||
| Библиотека | Назначение | Область применения |
|
||||
| -------------------------- | --------------------------------------------------------------------- | -------------------------------------------- |
|
||||
| `requests` | HTTP-клиент для отправки запросов и получения ответов | Парсинг, работа с API |
|
||||
| `setuptools` | Инструмент для упаковки Python-проектов и управления зависимостями | Сборка, установка пакетов |
|
||||
| `python-dotenv` | Загрузка переменных окружения из файла `.env` | Конфигурация, безопасное хранение секретов |
|
||||
| `tls-client` | Кастомный HTTP-клиент с поддержкой TLS и антибот-защиты | Парсинг сайтов с защитой |
|
||||
| `undetected-chromedriver` | Модифицированный ChromeDriver, обходящий антибот-защиту | Веб-скрапинг с защитой (Cloudflare и др.) |
|
||||
| `selenium` | Управление браузером для автоматизации действий | Парсинг, тестирование веб-интерфейсов |
|
||||
| `grpc_interceptor_headers` | Расширение gRPC-перехватчиков с поддержкой заголовков | gRPC API, метаданные |
|
||||
| `telethon` | Асинхронная библиотека для работы с Telegram API через MTProto | Мониторинг Telegram-каналов |
|
||||
| `schedule` | Простое планирование задач в Python | Локальный запуск задач по расписанию |
|
||||
| `psycopg2-binary` | PostgreSQL-драйвер для Python | Работа с СУБД PostgreSQL |
|
||||
| `docker` | Python-интерфейс к Docker Engine API | Управление контейнерами программно |
|
||||
| `asyncio` | Базовая библиотека Python для асинхронного программирования | Асинхронные задачи, неблокирующий ввод/вывод |
|
||||
| `pytz` | Работа с часовыми поясами | Корректная работа с временем |
|
||||
| `flask` | Легковесный веб-фреймворк | Веб-интерфейсы, REST API |
|
||||
| `apscheduler` | Планировщик задач с расширенными возможностями (cron, interval, date) | Автоматизация периодических задач |
|
@ -25,7 +25,7 @@ app.conf.task_queues = (
|
||||
|
||||
app.conf.beat_schedule = {
|
||||
'monitor-telegram-channels': {
|
||||
'task': 'tasks.tg_crawler.monitor_channel',
|
||||
'task': 'tasks.tg_crawler.monitor_channels',
|
||||
'schedule': 10.0,
|
||||
'options': {'queue': 'telegram'}
|
||||
},
|
||||
|
@ -27,20 +27,15 @@ class DriverCreator:
|
||||
).create_extension()
|
||||
|
||||
def get_driver(self):
|
||||
# extension_path = self._switch_proxy()
|
||||
extension_path = self._switch_proxy()
|
||||
|
||||
options = uc.ChromeOptions()
|
||||
# options.add_argument(f"--load-extension={extension_path}") # временно
|
||||
options.add_argument(f"--load-extension={extension_path}") # временно
|
||||
# options.add_argument("--headless=new")
|
||||
options.add_argument("--disable-gpu")
|
||||
options.add_argument("--disable-dev-shm-usage")
|
||||
options.add_argument("--no-sandbox")
|
||||
# options.add_argument("--disable-webgl")
|
||||
# options.add_argument("--disable-software-rasterizer")
|
||||
# options.add_argument("--disable-extensions")
|
||||
|
||||
# prefs = {"profile.managed_default_content_settings.javascript": 2}
|
||||
# options.experimental_options["prefs"] = prefs
|
||||
|
||||
driver = uc.Chrome(
|
||||
options=options,
|
||||
@ -48,9 +43,5 @@ class DriverCreator:
|
||||
# user_multi_procs=True
|
||||
)
|
||||
|
||||
# driver.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", {
|
||||
# "source": "Object.defineProperty(navigator, 'javaEnabled', {get: () => false});"
|
||||
# })
|
||||
# driver.execute_cdp_cmd("Emulation.setScriptExecutionDisabled", {"value": True})
|
||||
|
||||
return driver
|
@ -18,7 +18,8 @@ def main():
|
||||
'--pool=solo',
|
||||
'-Q', 'telegram',
|
||||
'--without-heartbeat',
|
||||
'--without-gossip'
|
||||
'--without-gossip',
|
||||
# '-B'
|
||||
]
|
||||
)
|
||||
except Exception as e:
|
||||
|
Loading…
Reference in New Issue
Block a user