Техническое задание на разработку чекера телефонных номеров

15 000 руб. за проект
28 октября 2024, 17:49 • 12 откликов • 60 просмотров
Техническое задание на разработку чекера телефонных номеров
Цель: Разработать сервис на Python для автоматической проверки телефонных номеров на наличие привязки к мессенджерам, таким как Viber, Telegram, WhatsApp и других более 50-100 сервисов. Сервис должен уметь массово проверять номера и возвращать результат для каждого номера.

1. Функциональные требования
Основная функциональность

Проверка телефонного номера на привязку к сервисам Viber, Telegram, WhatsApp и др
Возможность массовой загрузки номеров для проверки (например, через файл CSV или API).
Возврат статуса привязки для каждого номера:
Привязан / Не привязан
Ошибка при проверке
Ведение лога проверок с результатами и ошибками.
Интерфейс взаимодействия

Консольный интерфейс или веб-интерфейс для загрузки номеров и получения статуса привязки.
API-интерфейс для интеграции с другими системами, который принимает на вход список номеров и возвращает статус привязки для каждого.
Система очередей и лимитов

Настроить очередь запросов с интервалом между проверками, чтобы избежать блокировки со стороны сервисов.
Настроить лимиты на количество проверок в секунду для каждого сервиса.
Ротация IP-адресов

Использовать прокси-серверы для распределения запросов и предотвращения блокировки по IP.
Возможность задавать список прокси и автоматически переключать их, если текущий прокси заблокирован.
Система уведомлений

Настроить уведомления об ошибках, если какой-либо сервис заблокировал или ограничил доступ к проверкам.
Логирование всех ошибок и их причин для последующего анализа.
2. Требования к системе
Технологии

Язык: Python 3.x
Библиотеки:
requests для HTTP-запросов.
BeautifulSoup и Selenium для парсинга и обхода антибот-защит (если потребуется).
asyncio и aiohttp для асинхронной обработки запросов.
Logging для ведения лога проверок.
SQLAlchemy или аналог для хранения данных в базе (например, PostgreSQL или MySQL).
База данных: PostgreSQL / MySQL для хранения информации о номерах и результатах проверок.
Прокси: Настроить список прокси-серверов (с возможностью интеграции с прокси-провайдером).
Архитектура

Модульная структура:
Модуль для отправки запросов и обработки ответов от мессенджеров.
Модуль для управления очередью запросов и распределения нагрузки между прокси.
Модуль для логирования и хранения результатов в базе данных.
Модуль для работы с API (приём номеров и возврат результатов).
Безопасность

Ограничить количество проверок по IP-адресу, чтобы избежать блокировки.
Скрыть API-ключи и доступ к прокси в защищённом конфигурационном файле.
Встроить антибот-защиту и дополнительные проверки перед отправкой запроса.
Тестирование

Разработать тесты для проверки корректности работы всех модулей.
Написать тесты для проверки обработки ошибок (например, недоступности сервисов или неправильного ответа от сервера).
Написать нагрузочные тесты для проверки масштабируемости.
3. Этапы разработки
Проектирование и настройка инфраструктуры

Настройка прокси и очередей запросов.
Настройка и подключение базы данных.
Разработка основных модулей

Модуль для проверки привязки номера к каждому мессенджеру.
Модуль для очередей и лимитов запросов.
Модуль для логирования и хранения результатов в базе.
API-разработка

Реализация API для приёма номеров на проверку и возврата результатов.
Тестирование и отладка

Проведение тестов на масштабируемость и устойчивость к блокировкам.
Ликвидация ошибок и настройка ротации прокси.
Документация и ввод в эксплуатацию

Документация по API и внутренней архитектуре.
Руководство по настройке и использованию системы.
4. Пример результата
При запросе проверки номера сервис возвращает JSON с информацией о статусе привязки:

json
Копировать код
{
"number": "+1234567890",
"results": {
"Viber": "Linked",
"Telegram": "Not Linked",
"WhatsApp": "Error",
"Last Checked": "2024-10-25T12:00:00"
}
}
5. Требования к разработчику
Опыт работы с Python, асинхронным программированием и библиотеками для HTTP-запросов.
Знания в области прокси и обхода антибот-защит.
Опыт работы с базами данных и построением API.
Понимание аспектов безопасности и защиты от блокировок.