Skip to content

Dangeres/pik_flat_parser

Repository files navigation

PIK парсер недвижимости.

Оглавление README:

Про скрипт

Есть такой популярный застройщик недвижимости как ПИК (https://www.pik.ru/).

Хочется получать уведомления о новых доступных вариантах которые попадают под поиск по заданным параметрам, так же изменение цен на варианты которые попадают под поиск - какие квартиры выкупаются, какие квартиры изменяют цены и так далее.

Именно для этого и создавался этот скрипт.

Установка

  1. Скачиваете ветку;
  2. Устанавливаете python 3.9;
  3. Создаете виртуальное окружение python3.9 -m venv env
  4. Активируете виртуальное окружение и устанавливаете зависимости pip install -r requirements.txt
  5. Редактируете файл settings.json под себя;
  6. Закидываем параметры для поиска в файл settings_params.json;
  7. Запускаете parse.py и наслаждаетесь результатом.

Внутрянка

  1. Данные для настройки указываются в конфиг файле settings.json (шаблон заполнен тестовыми данными и называется sample_settings.json);
  2. Данные с параметрами для поиска указываются в формате json, в файле settings_params.json (шаблон заполнен тестовыми данными и называется sample_params.json);
  3. Автоматизированная программа(скрипт) забирает все квартиры по адресу, преобразует в список [get_all_flats функция];
  4. Этот список закидывается в файлы внутрь папки queue [save_data_flats_queue функция];
  5. Затем происходит обработка всех данных путем сравнения полученных квартир из пункта 2 и сохраненными раннее данными в папку data [process_flats];
  6. В ходе процессинга в пункте 5 происходит отправка уведомлений в телеграм путем post запроса на собственный микросервис по отправке сообщений (при условии что флаг send_telegram_message внутри настроеек имеет значение True);
  7. После процессинга засыпаем на время указанное в settings.json, значение следующего запроса записываем в системный файл settings_system.json.

Файл settings.json

Файл settings.json имеет формат json, с следующими ключами:

  • "host": [str] адрес микросервиса для отправки сообщений в телегу,

  • "sender": [str|int] кому отправлять сообщение в телеге, если указана str то будет ресолвить username, если указан int то будет считать что это userid(можно указывать ид канала),

  • "token": [str] токен микросервиса для отправки сообщения (по сути подпись),

  • "await_time": [int] количество секунд перед, следующим циклом запросов,

  • "use_cron": [bool] использовать логику для крон задачек(единоразовый запуск) [true] или же использовать логику работы в фоне [false],

  • "send_telegram_message": [bool] использовать ли уведомление в телеграм или обойдемся обычными принтами.

Если возникают какие-то сложности с файлом settings.json то можно переименовать файл с базовыми настройками sample_settings.json в settings.json, скрипт будет работать корректно.

Файл settings_params.json

Файл settings_params.json имеет формат json, с следующими ключами для поиска необходимых вариантов квартир на сайте.

Получить этот список можно зайдя най сайт pik.ru, открыв консоль разработчика Ctrl+F12, выбрав необходимые параметры.

Находим вкладку payload

Находим вкладку payload

Находим параметры для поиска

Находим параметры для поиска

Преобразуем параметры поиска в json в файл

Преобразуем параметры поиска в json и складываем в файл settings_params.json.

Если возникают какие-то сложности с файлом settings_params.json то можно переименовать файл с базовыми настройками sample_params.json в settings_params.json, скрипт будет работать корректно.

Примечание

По работе с виртуальными окружениями можно почитать docs.python.org

About

Парсер недвижимости от застройщика ПИК

Resources

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages