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=True,
    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 раз) сбор данных (но без трех полей, см примечание), по умолчанию True
  • 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.17.tar.gz (18.7 kB view details)

Uploaded Source

Built Distribution

cianparser-0.4.17-py3-none-any.whl (16.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: cianparser-0.4.17.tar.gz
  • Upload date:
  • Size: 18.7 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.17.tar.gz
Algorithm Hash digest
SHA256 1f0154ed7f4224a47c00d172a1a79c14f91308334d9ff0d245486d9dc9b79f6e
MD5 148d47012bca71aac61573f709196c72
BLAKE2b-256 3c670f07eaf4e05342494b4a93105e14174c1f99a3b1135818f4bdc399b46d2c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: cianparser-0.4.17-py3-none-any.whl
  • Upload date:
  • Size: 16.2 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.17-py3-none-any.whl
Algorithm Hash digest
SHA256 7b5e3df85c00bb5acb1c539684909ff25eb2aea3659acb5955ea6d54f1d3428c
MD5 19d4d36ad2f3fabaeca98d2f579cfdf5
BLAKE2b-256 27591b0313d9c0e1f0581dc1a7208e6a08d4c60ac171f8a2d6ad55b2e6cb8a50

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