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.13.tar.gz (18.5 kB view details)

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

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

File metadata

  • Download URL: cianparser-0.4.13.tar.gz
  • Upload date:
  • Size: 18.5 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.13.tar.gz
Algorithm Hash digest
SHA256 374d38839a4548169e2f3d95fe1759e86bc63741bf153954a43dc42102ea8ddd
MD5 69eff6afe375c16a26cc078f1d0fe6a3
BLAKE2b-256 d807fdd7654eb392823d6fd168836e368c670e017b34813776355ca369909e80

See more details on using hashes here.

File details

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

File metadata

  • Download URL: cianparser-0.4.13-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.13-py3-none-any.whl
Algorithm Hash digest
SHA256 1f2052269f50759f9834d444da5d0d9822fc66a651d3758e18588421da79a426
MD5 80e2cede1b446ff218bc5c52678a54bd
BLAKE2b-256 a8bf2107aee5d7dba9e5109a7ed8d153fe39a6457d8d1338933daeebb0cd35a1

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