Асинхронный парсер объявлений о продаже недвижимости на вторичном рынке с сайта ЦИАН. Написан на Python с использованием Playwright и BeautifulSoup4.
- Асинхронность: параллельный парсинг нескольких страниц одновременно через asyncio.
- Маскировка: автоматическая подмена User-Agent и использование корректных заголовков для обхода блокировок.
- Оптимизация: блокировка тяжелых ресурсов (картинки, шрифты) для экономии трафика и снижения нагрузки на ОЗУ.
- Логирование: детальное отслеживание процесса парсинга в консоли.
- Формат данных: сохранение результатов в структурированный JSON-файл.
Убедитесь, что у вас установлен Python 3.10+. Склонируйте репозиторий и установите зависимости:
git clone https://github.com/Ilyasir/cian-parser.git
cd cian-parser
pip install -r requirements.txt
Парсер использует движок Firefox. Установите его командой:
playwright install firefox
Для начала сбора данных запустите:
python run_parser.py
Все параметры парсинга находятся в файле core/config.py. Там уже установлены оптимальные значения, которые обеспечивают баланс между скоростью и безопасностью:
- CONCURRENT_TASKS — количество одновременно открытых вкладок (чем больше, тем быстрее, но выше нагрузка на ПК).
- URLS — список ссылок на разные типы квартир (например, на студии, однушки, двушки и т.д.).
- MAX_PAGES_TO_PARSE — сколько страниц объявлений нужно пролистать для каждой ссылки.
- MIN_SLEEP / MAX_SLEEP — паузы между действиями (в секундах), чтобы имитировать поведение человека.
После завершения работы в корне проекта появится файл flats_data.json со всей собранной информацией: цена, адрес, площадь, этажность, описание и данные о метро и др.