Спарсить: Парсинг истории чатов Авито с сохранением структуры. Пожелания и особенности: ТЕХНИЧЕСКОЕ ЗАДАНИЕ Парсинг истории чатов Авито с сохранением структуры диалогов 1. Цель проекта Выгрузить полную историю сообщений из аккаунта Авито (все диалоги за всё время) в структурированном электронном виде для последующего импорта в CRM и обучения AI-ассистента. 2. Требования к результату 2.1. Формат данных · Основной формат: JSON (предпочтительно) или CSV/Excel · Кодировка: UTF-8 · Все тексты должны сохранять оригинальное форматирование (смайлы, переносы строк) 2.2. Структура файла ```json { “profile_info“: { “avito_profile_id“: “[Телефон скрыт]“, “export_date“: “2024-01-20“, “total_dialogs“: 347 }, “dialogs“: [ { “dialog_id“: “dialog_001“, “client_info“: { “avito_user_id“: “client_789012“, “profile_url“: “https://www.avito.ru/user/...“, “username“: “Иван_Петров“, “registration_date“: “2022-05-15“ // если доступно }, “ad_info“: { “ad_id“: “avito_ad_456“, “ad_title“: “Нанесение номеров на спортивную форму“, “ad_url“: “https://www.avito.ru/...“, “ad_category“: “Услуги“ }, “messages“: [ { “message_id“: “msg_001“, “timestamp“: “2024-01-15T14:30:25+03:00“, “sender“: “client“, // или “me“ “message_type“: “text“, // text, image, document “text“: “Здравствуйте! Подскажите, делаете ли вы номера для футбольной команды?“, “attachments“: [] // если есть файлы }, { “message_id“: “msg_002“, “timestamp“: “2024-01-15T14:32:10+03:00“, “sender“: “me“, “message_type“: “text“, “text“: “Добрый день! Да, делаем. Сколько номеров нужно и на какую форму?“, “attachments“: [] } ], “metadata“: { “first_message_date“: “2024-01-15T14:30:25+03:00“, “last_message_date“: “2024-01-16T10:15:00+03:00“, “total_messages“: 12, “has_phone“: true, // был ли в диалоге обмен телефонами “has_order“: true, // по контексту можно определить был ли заказ “status“: “completed“ // completed, pending, rejected } } ] } ``` 2.3. Дополнительные файлы · contacts.csv — отдельный файл со всеми контактами: ``` user_id,phone,email,first_name,last_name,source_dialog client_789012,[Телефон скрыт],,Иван,Петров,dialog_001 ``` 3. Технические требования 3.1. Метод сбора данных · Предпочтительно: Использование официального API Авито (если доступно) · Альтернатива: Парсинг через Selenium/Puppeteer с эмуляцией браузера · Запрещено: Использование вредоносного ПО, взлом, нарушение ToS Авито 3.2. Требования к обработке 1. Авторизация: под моим аккаунтом Авито (предоставлю логин/парскод или cookies) 2. Полнота: выгрузить ВСЕ диалоги без ограничений по времени 3. Пагинация: обработать все страницы сообщений 4. Медиафайлы: если есть фотографии/документы — сохранить ссылки на них 5. Дедупликация: избегать дублирования сообщений 3.3. Производительность · Выгрузка должна работать без падений аккаунта Авито · Возможность приостановки и возобновления процесса · Логирование: вести лог процесса выгрузки 4. Критерии приемки Обязательные: · Выгружены все диалоги без пропусков · Сохранена хронология сообщений в каждом диалоге · Есть ссылки на профили клиентов · Номера телефонов извлечены там, где они есть в переписке · Даты сообщений в машиночитаемом формате (ISO 8601) · Структура JSON соответствует примеру выше Желательные: · Определение языка сообщений (русский/другой) · Классификация диалогов по темам (запрос цены, уточнение деталей и т.д.) · Экспорт в несколько форматов (JSON + CSV) · Визуальный отчет по статистике (графики количества диалогов по месяцам) 5. Безопасность и конфиденциальность 1. Конфиденциальность: исполнитель обязуется не хранить и не использовать данные после передачи 2. Безопасность аккаунта: не использовать данные аккаунта для других целей 3. Удаление данных: после завершения проекта удалить все промежуточные данные 4. Подписание NDA: готов подписать соглашение о неразглашении 6. Этапы работы и оплата Этап 1: Подготовка (10%) · Анализ структуры Авито · Написание скрипта/программы · Оплата: после предоставления плана работы Этап 2: Тестовая выгрузка (30%) · Выгрузка 50 последних диалогов · Проверка структуры и качества данных · Оплата: после утверждения тестовой выборки Этап 3: Полная выгрузка (60%) · Выгрузка всей истории · Формирование итоговых файлов · Оплата: после получения всех данных и проверки 7. Сроки · Тестовая выгрузка: 1-2 дня с момента начала · Полная выгрузка: 3-5 дней (зависит от объема истории) 8. Бюджет 3000 , оплата в соответствии с процентами выполнения этапов работ.