• Установка •
• Что внутри •
• Что такое файл settings.json •
• Что такое файл settings_params.json •
• Примечание •
Есть такой популярный застройщик недвижимости как ПИК (https://www.pik.ru/).
Хочется получать уведомления о новых доступных вариантах которые попадают под поиск по заданным параметрам, так же изменение цен на варианты которые попадают под поиск - какие квартиры выкупаются, какие квартиры изменяют цены и так далее.
Именно для этого и создавался этот скрипт.
- Скачиваете ветку;
- Устанавливаете python 3.9;
- Создаете виртуальное окружение
python3.9 -m venv env - Активируете виртуальное окружение и устанавливаете зависимости
pip install -r requirements.txt - Редактируете файл
settings.jsonпод себя; - Закидываем параметры для поиска в файл
settings_params.json; - Запускаете
parse.pyи наслаждаетесь результатом.
- Данные для настройки указываются в конфиг файле
settings.json(шаблон заполнен тестовыми данными и называется sample_settings.json); - Данные с параметрами для поиска указываются в формате json, в файле
settings_params.json(шаблон заполнен тестовыми данными и называется sample_params.json); - Автоматизированная программа(скрипт) забирает все квартиры по адресу, преобразует в список [
get_all_flatsфункция]; - Этот список закидывается в файлы внутрь папки
queue[save_data_flats_queueфункция]; - Затем происходит обработка всех данных путем сравнения полученных квартир из пункта 2 и сохраненными раннее данными в папку
data[process_flats]; - В ходе процессинга в пункте 5 происходит отправка уведомлений в телеграм путем post запроса на собственный микросервис по отправке сообщений (при условии что флаг
send_telegram_messageвнутри настроеек имеет значение True); - После процессинга засыпаем на время указанное в
settings.json, значение следующего запроса записываем в системный файлsettings_system.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 имеет формат json, с следующими ключами для поиска необходимых вариантов квартир на сайте.
Получить этот список можно зайдя най сайт pik.ru, открыв консоль разработчика Ctrl+F12, выбрав необходимые параметры.
Находим вкладку payload
Находим параметры для поиска
Преобразуем параметры поиска в json и складываем в файл settings_params.json.
Если возникают какие-то сложности с файлом settings_params.json то можно переименовать файл с базовыми настройками sample_params.json в settings_params.json, скрипт будет работать корректно.
По работе с виртуальными окружениями можно почитать docs.python.org


