forked from stud178875/tempora
		
	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