Skip to main content

Parser information from Cian website

Project description

Сбор данных с сайта объявлений об аренде и продаже недвижимости Циан

Cianparser - это библиотека Python 3 (версии 3.8 и выше) для парсинга сайта Циан. С его помощью можно получить достаточно подробные и структурированные данные по краткосрочной и долгосрочной аренде, продаже квартир, домов, танхаусов итд.

Установка

pip install cianparser

Использование

import cianparser
    
data = cianparser.parse(
    deal_type="rent_long",
    accommodation_type="flat",
    location="Москва",
    rooms=(2, 3),
    start_page=1,
    end_page=2,
    is_saving_csv=True,
    is_latin=False,
    is_express_mode=False,
    is_by_homeowner=False,
)

print(data[0])
                              Preparing to collect information from pages..

The absolute path to the file: 
 /Users/macbook/some_project/cian_parsing_result_rent_long_1_2_moskva_04_Feb_2023_06_58_21_765479.csv 

The page from which the collection of information begins: 
 https://cian.ru/cat.php?engine_version=2&p=1&region=1&offer_type=flat&deal_type=rent&room2=1&room3=1&with_neighbors=0&type=4 

Collecting information from pages with list of announcements
1 | 1 page with list: [=>=>=>=>=>=>=>=>=>=>=>=>=>=>=>=>=>=>=>=>=>=>=>=>=>=>=>=>] 100% | Count of parsed: 28. Progress ratio  50 %. Average price: 204 642 rub
2 | 2 page with list: [=>=>=>=>=>=>=>=>=>=>=>=>=>=>=>=>=>=>=>=>=>=>=>=>=>=>=>=>] 100% | Count of parsed: 56. Progress ratio 100 %. Average price: 236 426 rub

{  'accommodation_type': 'flat',
   'deal_type': 'rent',
   'city': 'Москва',
   'district': 'Замоскворечье',
   'underground': 'Новокузнецкая',
   'street': 'Космодамианская набережная',
   'floor': 5,
   'floors_count': 12,
   'total_meters': 85.0,
   'living_meters': 55.0,
   'kitchen_meters': 11.0,
   'rooms_count': 3,
   'year_of_construction': '1954',
   'price_per_month': 93000,
   'price_per_m2': 1094,
   'commissions': 50,
   'author': 'Apple Real Estate',
   'author_type': 'real_estate_agent',
   'phone': '+79057145354',
   'link': 'https://www.cian.ru/rent/flat/282487326/',
}

The collection of information from the pages with list of announcements is completed
Total number of parced announcements: 56. Average price per month: 236 426 rub

Конфигурация

Функция parse имеет следующий аргументы:

  • deal_type - тип объявления, к примеру, долгосрочная, краткосрочная аренда, продажа ("rent_long", "rent_short", "sale")
  • accommodation_type - вид жилья, к примеру, квартира, комната, дом, часть дома, таунхаус ("flat", "room", "house", "house-part", "townhouse")
  • location - локация объявления, к примеру, Казань (для просмотра доступных мест используйте cianparser.list_cities())
  • rooms - количество комнат, к примеру, 1, (1,3, "studio"), "studio, "all"; по умолчанию любое ("all")
  • start_page - страница, с которого начинается сбор данных, по умолчанию, 1
  • end_page - страница, с которого заканчивается сбор данных, по умолчанию, 100
  • is_saving_csv - необходимо ли сохранение собираемых данных (в реальном времени в процессе сбора данных) или нет, по умолчанию False
  • is_latin - необходимо ли преобразывание любой встрещающейся кириллицы в латиницу, по умолчанию False
  • is_express_mode - необходимо ли ускорение (в 5-10 раз) сбор данных (но без трех полей, см примечание), по умолчанию False
  • is_by_homeowner - необходимо ли собирать данные с объявлений, созданных только собственниками, по умолчанию False

Если имеется желание собрать данные со всех страниц, то можно пропустить аргументы start_page и end_page. В проекте предусмотрен функционал корректного завершения в случае окончания страниц. По данному моменту, следует изучить раздел Ограничения

В настоящее время функционал доступен только по продажам (sale) и долгосрочном арендам (rent_long) квартир и студий (flat).

Признаки, получаемые в ходе сбора данных с предложений по долгосрочной аренде недвижимости

  • district - район
  • underground - метро
  • street - улица
  • floor - этаж
  • floors_count - общее количество этажей
  • total_meters - общая площадь
  • living_meters - жилая площади
  • kitchen_meters - площадь кухни
  • rooms_count - количество комнат
  • year_construction - год постройки здания
  • price_per_month - стоимость в месяц
  • price_per_m2 - стоимость на квадратный метр
  • commissions - комиссия, взымаемая при заселении
  • author - автор объявления
  • author_type - тип автора
  • phone - номер телефона в объявлении
  • link - ссылка на объявление

Возможные значения поля author_type:

  • real_estate_agent - агентство недвижимости
  • homeowner - собственник
  • realtor - риелтор
  • official_representative - ук оф.представитель
  • representative_developer - представитель застройщика
  • developer - застройщик
  • unknown - без указанного типа

Признаки, получаемые в ходе сбора данных с предложений по продаже недвижимости

Признаки аналогичны вышеописанным, кроме отсутствия полей price_per_month и commissions.

При этом появляются новые:

  • price - стоимость недвижимости
  • residential_complex - название жилого комплекса

Сохранение данных

Имеется возможность сохранения собираемых данных в режиме реального времени. Для этого необходимо подставить в аргументе is_saving_csv значение True.

Пример получаемого файла:

cian_parsing_result_rent_long_1_2_moskva_04_Feb_2023_06_58_21_765479.csv
author author_type link city deal_type accommodation_type floor floors_count rooms_count total_meters price_per_month price_per_m2 commissions year_of_construction living_meters kitchen_meters phone district street underground
Intermark Real Estate real_estate_agent https://www.cian.ru/rent/flat/278903117/ Москва rent flat 4 6 3 50.0 180000 3600 0 1911 32.0 8.0 +79676513428 Пресненский Малый Предтеченский переулок Краснопресненская
Capital Mars real_estate_agent https://www.cian.ru/rent/flat/282506328/ Москва rent flat 5 9 2 89.0 180000 2022 0 2006 53.0 15.0 +79660619653 Хамовники 3-я Фрунзенская Спортивная
MERSI real_estate_agent https://www.cian.ru/rent/flat/281562376/ Москва rent flat 8 16 2 80.0 200000 2500 0 2012 -1 -1 +79652455850 Замоскворечье Мытная Октябрьская

Ограничения

Сайт выдает списки с объявлениями лишь до 54 странцы включительно. Это примерно 28 * 54 = 1512 объявлений. Поэтому, если имеется желание собрать как можно больше данных, то следует использовать более конкретные запросы (по количеству комнат).

К примеру, вместо того, чтобы при использовании указывать rooms=(1, 2), стоит два раза отдельно собирать данные с параметрами rooms=1 и rooms=2 соответственно.

Таким образом, максимальная разница может составить 1 к 6 (студия, 1, 2, 3, 4, 5 комнатные квартиры), то есть 1512 к 9072.

Примечание

  1. В некоторых объявлениях отсутсвуют данные по некоторым признакам (год постройки, жилые кв метры, кв метры кухни итп). В этом случае проставляется значение -1 либо пустая строка для числового и строкового типа поля соответственно.

  2. Для отсутствия блокировки по IP в данном проекте задана пауза (в размере 4-5 секунд) после сбора информации с каждой отдельной взятой страницы.

  3. Не рекомендутся производить несколько процессов сбора данных параллельно (одновременно) на одной машине (см. пункт 2).

  4. Имеется флаг is_express_mode, при помощи которого можно существенно (в 5-10 раз) ускорить сбор данных благодаря отсутствию необходимости заходить на каждую страницу с предложением. Однако в таком случае не будут собираться данные о площади кухни, годе постройки здания и номере телефона.

  5. Данный парсер не будет работать в таком инструменте как Google Colaboratory. См. подробности

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cianparser-0.4.12.tar.gz (18.4 kB view details)

Uploaded Source

Built Distribution

cianparser-0.4.12-py3-none-any.whl (16.0 kB view details)

Uploaded Python 3

File details

Details for the file cianparser-0.4.12.tar.gz.

File metadata

  • Download URL: cianparser-0.4.12.tar.gz
  • Upload date:
  • Size: 18.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.6

File hashes

Hashes for cianparser-0.4.12.tar.gz
Algorithm Hash digest
SHA256 a0aa3c367300e626810dfb4bd1b75439c4d083d8e283636a6976f3c473350737
MD5 aa9fb497421ef29df0c3026c7d46048f
BLAKE2b-256 2bb4c88ead4a6a17a229046d172355d55aaab554ca0b9f698e0e42bd6e35d7ab

See more details on using hashes here.

File details

Details for the file cianparser-0.4.12-py3-none-any.whl.

File metadata

  • Download URL: cianparser-0.4.12-py3-none-any.whl
  • Upload date:
  • Size: 16.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.6

File hashes

Hashes for cianparser-0.4.12-py3-none-any.whl
Algorithm Hash digest
SHA256 58fb923a44a9428bf8cfe90ec187e9b792f4585771c74bcce29ad9a7d7396a99
MD5 bd668c4e07754387fc03913b60d1cc3c
BLAKE2b-256 5796c26b1afc723dbd3b2ed2d42383904902a5a3c9d03fbc888e369691250d88

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page