Ищем 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-совместимые хранилища.
- Опыт длительного сопровождения нескольких источников.
Будьте осторожны: если работодатель просит войти через Google, iCloud или Госуслуги, прислать код или пароль, запустить ПО или перевести деньги — это мошенники.