Парсинг недвижимости Авито, Циан, Яндекс. Часть II (База данных SQLite)

Парсинг недвижимости Авито, Циан, Яндекс. Часть II (База данных SQLite)

Проект по мониторингу движимости

Обзор раздела: В этом разделе рассматривается проект по мониторингу движимости, включая парсинг данных с площадок Avito, Cian и Яндекс.Недвижимость, а также подключение базы данных для хранения объявлений.

Подключение базы данных

  • Показан более быстрый способ парсинга Avito для оперативного оповещения о новых объявлениях.
  • Создание базы данных с полями для хранения информации об объявлениях.
  • Использование SQLite для создания и управления базой данных.

Создание таблицы в базе данных

  • Создание таблицы "offers" с необходимыми полями.
  • Описание полей таблицы "offers".

Проверка наличия объявлений в базе данных

  • Написание функции "check_database", которая проверяет наличие объявления в базе данных.
  • Продолжение работы с функцией "check_database" для парсинга данных с Яндекс.Недвижимость.
  • Подключение к базе данных и выполнение запроса для поиска объявления.

Заключение

  • Выборка объявления из базы данных.
  • Создание переменной "offer" для хранения информации об объявлении.

Каждая секция содержит не более 4 пунктов, а каждый пункт имеет не более 25 слов. Вся информация взята из транскрипта видео.

Получение данных из базы данных без курсора

Обзор раздела: В этом разделе рассматривается получение данных из базы данных без использования курсора и использование метода which_one, который возвращает одну запись из всех найденных.

Получение единственной записи из базы данных

  • Используем метод which_one для получения единственной записи из базы данных.
  • Распечатываем полученную запись.

Обработка отсутствия результатов

  • Если результат не найден, отправляем сообщение.
  • Добавляем данные объявления в базу данных.

Функция g_offer для работы с данными объявления

  • Функция g_offer будет возвращать словарь offer, который будет использоваться для добавления информации об объявлении в базу данных и отправки сообщения через Telegram.
  • Создаем словарь offer с ключами, которые будут использоваться для формирования информации об объявлении.

Передача ключей в словарь offer

  • Передаем ключи в словарь offer.
  • Работаем с переданными ключами.

Редактирование нескольких значений одновременно

  • Выделяем все значения клавишами Alt и двойным кликом.
  • Редактируем значения ключей.

Передача словаря offer в функцию g_offer

  • Передаем словарь offer в функцию g_offer.
  • Создаем словарь с ключами, которые будут использоваться для формирования информации об объявлении.

Добавление значений в словарь offer

  • Добавляем значения в словарь offer.
  • Значения добавляются по ключам.

Получение значений из списка

  • Получаем первое значение из списка и количество этажей в доме.
  • Распечатываем полученные значения.

Использование именованных переменных

  • Используем именованные переменные для передачи данных из словаря offer в запрос базы данных.
  • Передаем данные по ключам через запятую.

Сохранение изменений в базе данных

  • Выполняем команду сохранения изменений в базе данных.
  • Закрываем соединение с базой данных.

Добавление сообщения о добавленной записи

  • Добавляем сообщение о добавленной записи в базу данных.

Выводы:

В данном разделе рассмотрены основные шаги по получению данных из базы данных, формированию словаря offer и добавлению информации об объявлении в базу данных. Также рассмотрено использование именованных переменных для передачи данных в запрос базы данных и сохранение изменений.

Наведение порядка

Обзор раздела: В этом разделе рассматривается функция main, объединение данных и создание функции готовь_epc.

Подготовка данных

  • Создаем функцию main, которая запускает скрипт.
  • Получаем данные из файла JSON.
  • Объединяем все данные в одну структуру.

Форматирование данных

  • Приводим заголовки ответа к нужному формату.

Создание функции "готовь_epc"

  • Создаем функцию, которая будет обрабатывать наши данные.
  • Переносим код в эту функцию для удобства работы.

Другие изменения

  • Создаем функцию "чек".
  • Исправляем некоторые ошибки и опечатки в коде.

Работа с базой данных

Обзор раздела: В этом разделе рассматривается работа с базой данных SQLite.

Установка соединения с базой данных

  • Импортируем библиотеку SQLite.
  • Устанавливаем соединение с базой данных через контекстный менеджер.

Создание таблицы и добавление записей

  • Создаем таблицу "offers" в базе данных.
  • Выполняем запрос на добавление записей в таблицу.

Закрытие соединения с базой данных

  • Закрываем соединение с базой данных.

Получение объявлений

Обзор раздела: В этом разделе рассматривается получение объявлений и отправка сообщений в Telegram.

Выполнение запроса на выборку

  • Выполняем запрос на выборку всех объявлений из таблицы "offers".
  • Если результат пустой, отправляем сообщение в Telegram.

Создание функции "get_offer"

  • Создаем функцию для получения одного объявления.
  • Возвращаем словарь с данными объявления.

Обновление базы данных

Обзор раздела: В этом разделе рассматривается обновление базы данных и добавление новых записей.

Обновление таблицы

  • Обновляем данные в таблице "offers".
  • Проверяем, что объявление успешно добавлено в базу данных.

Получение ID объявления

  • Получаем ID добавленного объявления.

Добавление всех записей

Обзор раздела: В этом разделе рассматривается добавление всех записей в базу данных и проверка типов квартир.

Добавление всех записей

  • Убираем ограничение на количество обрабатываемых объявлений.
  • Обновляем базу данных с помощью всех записей.

Проверка типов квартир

  • Проверяем типы квартир на основе ссылок.
  • Добавляем условие для студийных квартир.

Общий результат

Обзор раздела: В этом разделе рассматривается общий результат работы скрипта и проверка добавленных объявлений.

Обновление базы данных

  • Обновляем базу данных со всеми объявлениями.

Результат работы скрипта

  • Получаем общее количество записей в базе данных.
  • Проверяем последнюю добавленную запись.

Открытие парсера Avito

Обзор раздела: В этом разделе рассматривается процесс открытия парсера Avito и получения данных в формате JSON.

Получение данных из HTML

  • Используется парсер, который сначала получает HTML-код страницы.
  • Затем из тега <script> извлекается JSON и приводится к нормальному текстовому формату.
  • Далее данные преобразуются в словарь.

Поиск JSON в мобильной версии

  • Чтобы найти JSON в мобильной версии, нужно открыть инструменты разработчика (F12), перейти на вкладку "Сеть" и обновить страницу.
  • Появится мобильная версия сайта, где можно найти нужный JSON.
  • Ссылка на чистый JSON будет содержать параметры, такие как m.vitara.api, 11 и другие.

Упрощение кода для получения чистого JSON

  • Создается новый скрипт для работы с Avito.
  • Импортируется библиотека request.
  • Функция get_json() использует URL для получения чистого JSON без необходимости парсинга HTML.

Очистка данных и фильтрация объявлений

Обзор раздела: В этом разделе рассматривается очистка данных и фильтрация объявлений на Avito.

Очистка данных

  • Удаляются ненужные символы, такие как слэши.
  • Убирается информация о дате обновления.
  • Фильтруется только первая страница объявлений с сортировкой по дате и лимитом в 30 сообщений.

Фильтрация объявлений

  • Добавляется параметр "ареал" для удобства.
  • Передается URL в функцию get_json() для получения чистого JSON с объявлениями.

Получение нужного JSON запроса

Обзор раздела: В этом разделе рассматривается получение нужного JSON запроса на Avito.

Поиск нужного JSON запроса

  • Нажимается кнопка "Показать 3000 объявлений".
  • Появляются запросы, и нужный JSON находится в одном из них.
  • Ссылка открывает чистый JSON с необходимыми объявлениями.

Создание нового скрипта для парсинга Avito

Обзор раздела: В этом разделе рассматривается создание нового скрипта для парсинга Avito с использованием чистого JSON.

Создание скрипта

  • Создается новый скрипт с названием "avito_json".
  • Импортируется библиотека request.
  • Создается функция get_json(), которая получает данные из URL и возвращает чистый JSON.

Получение текста запроса для парсинга Avito

Обзор раздела: В этом разделе рассматривается получение текста запроса для парсинга Avito.

Получение текста запроса

  • Копируется URL объявления.
  • Открывается сайт "kur

Обработка данных объявлений

Обзор раздела: В этом разделе рассматривается обработка данных объявлений, включая ключевую информацию о квартирах и адресах.

Извлечение ключевых данных

  • Используется библиотека date-time для преобразования формата даты и времени.
  • Извлекается информация о количестве комнат, площади, этаже и количестве этажей квартиры.
  • Адрес вытаскивается из локации.

Запись данных в базу данных

  • Данные добавляются в базу данных объявлений на Avito.
  • Проверка работы скрипта с помощью команды print(offer).

Сортировка и анализ данных

Обзор раздела: В этом разделе рассматривается сортировка и анализ полученных данных объявлений.

Сортировка по дате добавления

  • Объявления сортируются по дате последнего добавления.
  • Проверка работы скрипта с помощью команды print(offer).

Проверка новых объявлений на других площадках

  • Проверяется наличие новых объявлений на Циане и Яндекс.Недвижимости.
  • Результаты проверки выводятся в таблицу.

Использование данных из базы

Обзор раздела: В этом разделе рассматривается использование данных из базы объявлений для аналитики и фильтрации.

Анализ данных

  • Данные могут быть использованы для проведения анализа, например, по количеству квартир разных типов и времени добавления.
  • Можно проводить фильтрацию по площади квартир.

Заключение

  • Обработка данных объявлений завершена.
  • В следующей части будет настроено оповещение в Telegram.
Video description

Настраиваю мониторинг объявлений об аренде недвижимости с мгновенным оповещением в телеграм. Поблагодарить и поддержать канал: https://pay.cloudtips.ru/p/118e1f87 Тайм-коды 00:00:00 Обсуждаю задачу 00:01:34 Создаю базу данных SQLite 00:04:58 Парсим Я.Недвижимость в базу данных 00:18:50 Парсим Циан в базу данных 00:28:55 Парсим Авито в базу данных 00:40:49 Планы на III часть Для просмотра базы данных используем программу DB Browser for SQLite https://sqlitebrowser.org/ По изучению базы данных SQLite рекомендую канал selfedu https://youtube.com/playlist?list=PLA0M1Bcd0w8x4Inr5oYttMK6J47vxgv6J Ссылка на исходники: https://github.com/DxDiagDx/realty/ Телеграм-чат про парсинг: https://t.me/proparsing Для связи пишите: Почта lukin@usota.ru WhatsApp +79053311246 Профи.ру — https://profi.ru/profile/LukinEA8/