Python-разработчик - парсинг и сбор данных (Middle/Middle+)
Описание
Ищем Python-разработчика в команду для создания и поддержки системы сбора данных из открытых источников: сайтов, поисковых сервисов, социальных сетей и т.д.Предстоит разрабатывать парсинг-сервисы, приводить данные к единому формату и сохранять их в базы данных и файловое хранилище. Планируем работать с более 15 источников и объёмом от 1 млн профилей.Зарплата: 180 000–230 000 ₽ на руки в месяц, по результатам технического собеседования. Полная занятость, офис. Что предстоит делать: - Разрабатывать сборщики на Python: получать данные через API и HTTP-запросы, извлекать информацию из HTML, использовать браузерную автоматизацию.- Собирать доступные сведения о профилях, публикациях и активности, загружать фотографии и другие материалы.- Проверять и нормализовать данные, обрабатывать пропуски, предотвращать дубли.- Реализовывать запись и обновление данных в PostgreSQL, связывать записи с файлами в объектном хранилище.- Сохранять источник и время получения данных, фиксировать изменения при повторном сборе.- Настраивать регулярные запуски, обработку ошибок и повторные попытки.- Поддерживать сборщики при изменении источников, писать тесты и добавлять логи для диагностики. Что важно: - Практический опыт разработки на Python и реализации сборщиков или интеграций с внешними API.- Понимание HTTP, JSON, HTML, пагинации, таймаутов и ограничений частоты запросов.- Опыт с requests, HTTPX или aiohttp, а также BeautifulSoup, lxml или Scrapy. Владение всеми библиотеками одновременно не требуется.- Умение пользоваться DevTools браузера для изучения страниц и сетевых запросов.- Уверенный базовый SQL: выборки, связи таблиц, вставка и обновление данных. Желателен опыт PostgreSQL.- Понимание того, как проверять результат сбора и избегать повторных записей.- Работа с Git, опыт отладки и написания тестов, например на pytest.- Умение реализовывать согласованные решения, обсуждать вопросы и работать с ревью.- Playwright или Selenium.- Асинхронный Python и asyncio. Будет плюсом: - SQLAlchemy и Alembic.- Docker, Linux, запуск задач по расписанию.- Celery, RQ или другие инструменты фоновой обработки.- S3-совместимые хранилища.- Опыт длительного сопровождения нескольких источников.