Форум программистов, компьютерный форум, киберфорум
Python
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 14.05.2017
Сообщений: 31

Прошу критики

22.11.2017, 14:35. Показов 889. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет!

Прошу старших коллег оценить код ниже. Любая критика приветствуется.

Стоит задача спарсить страницы с объявлениями о продаже квартир. Код представлен ниже.

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import requests
from bs4 import BeautifulSoup
 
s = requests.get('https://www.avito.ru/ufa/kvartiry/prodam/5-komnatnye/novostroyka').text
 
soup = BeautifulSoup(s, 'html.parser')
flats = soup.find_all('div', class_='item_table')
 
for flat in flats:
    info = flat.find('a', class_='item-description-title-link').get('title').split(',')
 
    room = info[0].split('-')[0]
    square = float(info[1].split()[0])
    floor = int(info[2].split()[0].split('/')[0])
    floors = int(info[2].split()[0].split('/')[1])
    price = int(''.join(flat.find('div', class_='about').text.split()[:-1]))
 
    try:
        photo = 'https:' + flat.find('img', class_='photo-count-show').get('src')
    except:
        photo = None
 
    print('комнат:', room, '\tплощадь:', square, '\tэтаж:', floor, '\tвсего этажей:', floors, '\tцена:', price, '\tфото', photo)
HTML после кода flats = soup.find_all('div', class_='item_table'):

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
[<div class="item item_table clearfix js-catalog-item-enum item-highlight " data-type="2" id="i960544537">
<div class="b-photo">
<a class="photo-wrapper js-photo-wrapper" href="/ufa/kvartiry/5-k_kvartira_170_m_13_et._960544537" title="Объявление «5-к квартира, 170 м², 1/3 эт.» (6 фотографий)">
<img alt="5-к квартира, 170 м², 1/3 эт." class="photo-count-show" src="//72.img.avito.st/140x105/3633532772.jpg"/>
<span class="photo-icons"><i class="i i-photo">6</i></span>
</a>
</div>
<div class="favorites-add is-design-simple js-favorites-add">
<a class="favorites-add__link js-favorites-add-toggle" data-event-config='{"id":960544537,"active":false,"categorySlug":"kvartiry","rootCategoryId":4,"access":{"favorite":true,"compare":true}}' href="/favorites/add/960544537" title="Добавить в избранное и в сравнение"> <i class="i i-favorites-big js-favorites-add-icon" data-root-category-id="4" data-state="empty"> </i>
<span class="favorites-add__label pseudo-link js-favorites-add-label">В избранное</span> </a>
</div>
<div class="description item_table-description">
<div class="item_table-header">
<h3 class="title item-description-title"> <a class="item-description-title-link" href="/ufa/kvartiry/5-k_kvartira_170_m_13_et._960544537" title="5-к квартира, 170 м², 1/3 эт. в Уфе">
 5-к квартира, 170 м², 1/3 эт.
 </a>
</h3>
<div class="about">
  2 990 000 руб.           <div class="popup-prices popup-prices__wrapper clearfix" data-currencies='{"RUB":{"title":"Рубль","title_plural":"Рублей","sign":"₽"},"USD":{"title":"Доллар","title_plural":"Долларов","sign":"$"},"EUR":{"title":"Евро","title_plural":"Евро","sign":"€"}}' data-date="22 ноября 2017" data-prices='[{"title":"цена","currencies":{"RUB":2990000,"USD":50285.56821010286,"EUR":42825.38700399895}},{"title":"за м²","currencies":{"RUB":17588,"USD":295.7935029027723,"EUR":251.9106711124861}}]'> <button class="button button-origin popup-prices-show js-btn-circle"></button> </div>
</div>
</div>
<div> <p class="address fader">
 р-н Октябрьский, ул Липецкая, 14 </p> </div>
<div class="data">
</div></div></div>, <div class="item item_table clearfix js-catalog-item-enum c-b-0 " data-type="1" id="i1037139686">
<div class="b-photo">
<a class="photo-wrapper js-photo-wrapper" href="/ufa/kvartiry/5-k_kvartira_280_m_99_et._1037139686" title="Объявление «5-к квартира, 280 м², 9/9 эт.» (10 фотографий)">
<img alt="5-к квартира, 280 м², 9/9 эт." class="photo-count-show" src="//80.img.avito.st/140x105/3836344080.jpg"/>
<span class="photo-icons"><i class="i i-photo">10</i></span>
</a>
</div>
<div class="favorites-add is-design-simple js-favorites-add">
<a class="favorites-add__link js-favorites-add-toggle" data-event-config='{"id":1037139686,"active":false,"categorySlug":"kvartiry","rootCategoryId":4,"access":{"favorite":true,"compare":true}}' href="/favorites/add/1037139686" title="Добавить в избранное и в сравнение"> <i class="i i-favorites-big js-favorites-add-icon" data-root-category-id="4" data-state="empty"> </i>
<span class="favorites-add__label pseudo-link js-favorites-add-label">В избранное</span> </a>
</div>
<div class="description item_table-description item_table-description_with-logo">
<a href="/perspektiva24"><img alt="" class="item_table-user-logo" src="//77.img.avito.st/user/logo/300x200/55852977_3858045081.jpg"/></a>
<div class="item_table-header">
<h3 class="title item-description-title"> <a class="item-description-title-link" href="/ufa/kvartiry/5-k_kvartira_280_m_99_et._1037139686" title="5-к квартира, 280 м², 9/9 эт. в Уфе">
 5-к квартира, 280 м², 9/9 эт.
 </a>
</h3>
<div class="about">
  28 956 000 руб.           <div class="popup-prices popup-prices__wrapper clearfix" data-currencies='{"RUB":{"title":"Рубль","title_plural":"Рублей","sign":"₽"},"USD":{"title":"Доллар","title_plural":"Долларов","sign":"$"},"EUR":{"title":"Евро","title_plural":"Евро","sign":"€"}}' data-date="22 ноября 2017" data-prices='[{"title":"цена","currencies":{"RUB":28956000,"USD":486979.56959589914,"EUR":414733.0789591283}},{"title":"за м²","currencies":{"RUB":103414,"USD":1739.2079434379857,"EUR":1481.1854754620558}}]'> <button class="button button-origin popup-prices-show js-btn-circle"></button> </div>
</div>
</div>
<div> <p class="address fader">
 р-н Советский, ул. Менделеева, 156/2 </p> </div>
<div class="data">
<a href="/perspektiva24?gdlkerfdnwq=102&amp;shopId=50452" target="_blank">«Перспектива24» - Федеральный оператор недвижимости</a>
</div></div></div>, <div class="item item_table clearfix js-catalog-item-enum c-b-0 " data-type="1" id="i958900068">
<div class="b-photo">
<a class="photo-wrapper js-photo-wrapper" href="/ufa/kvartiry/5-k_kvartira_153_m_910_et._958900068" title="Объявление «5-к квартира, 153 м², 9/10 эт.» (6 фотографий)">
<img alt="5-к квартира, 153 м², 9/10 эт." class="photo-count-show" src="//55.img.avito.st/140x105/3944108755.jpg"/>
<span class="photo-icons"><i class="i i-photo">6</i></span>
</a>
</div>
<div class="favorites-add is-design-simple js-favorites-add">
<a class="favorites-add__link js-favorites-add-toggle" data-event-config='{"id":958900068,"active":false,"categorySlug":"kvartiry","rootCategoryId":4,"access":{"favorite":true,"compare":true}}' href="/favorites/add/958900068" title="Добавить в избранное и в сравнение"> <i class="i i-favorites-big js-favorites-add-icon" data-root-category-id="4" data-state="empty"> </i>
<span class="favorites-add__label pseudo-link js-favorites-add-label">В избранное</span> </a>
</div>
<div class="description item_table-description">
<div class="item_table-header">
<h3 class="title item-description-title"> <a class="item-description-title-link" href="/ufa/kvartiry/5-k_kvartira_153_m_910_et._958900068" title="5-к квартира, 153 м², 9/10 эт. в Уфе">
 5-к квартира, 153 м², 9/10 эт.
 </a>
</h3>
<div class="about">
  10 500 000 руб.           <div class="popup-prices popup-prices__wrapper clearfix" data-currencies='{"RUB":{"title":"Рубль","title_plural":"Рублей","sign":"₽"},"USD":{"title":"Доллар","title_plural":"Долларов","sign":"$"},"EUR":{"title":"Евро","title_plural":"Евро","sign":"€"}}' data-date="22 ноября 2017" data-prices='[{"title":"цена","currencies":{"RUB":10500000,"USD":176588.11578798664,"EUR":150390.15503076554}},{"title":"за м²","currencies":{"RUB":68627,"USD":1154.1631068744912,"EUR":982.9357304091759}}]'> <button class="button button-origin popup-prices-show js-btn-circle"></button> </div>
</div>
</div>
<div> <p class="address fader">
 р-н Советский, ул Ленина, 156 </p> </div>
<div class="data">
</div></div></div>, <div class="item item_table clearfix js-catalog-item-enum c-b-0 " data-type="1" id="i1048199408">
<div class="b-photo">
<a class="photo-wrapper js-photo-wrapper" href="/ufa/kvartiry/5-k_kvartira_156.5_m_1213_et._1048199408" title="Объявление «5-к квартира, 156.5 м², 12/13 эт.» (20 фотографий)">
<img alt="5-к квартира, 156.5 м², 12/13 эт." class="photo-count-show" src="//59.img.avito.st/140x105/3972796259.jpg"/>
<span class="photo-icons"><i class="i i-photo">20</i></span>
</a>
</div>
<div class="favorites-add is-design-simple js-favorites-add">
<a class="favorites-add__link js-favorites-add-toggle" data-event-config='{"id":1048199408,"active":false,"categorySlug":"kvartiry","rootCategoryId":4,"access":{"favorite":true,"compare":true}}' href="/favorites/add/1048199408" title="Добавить в избранное и в сравнение"> <i class="i i-favorites-big js-favorites-add-icon" data-root-category-id="4" data-state="empty"> </i>
<span class="favorites-add__label pseudo-link js-favorites-add-label">В избранное</span> </a>
</div>
<div class="description item_table-description">
<div class="item_table-header">
<h3 class="title item-description-title"> <a class="item-description-title-link" href="/ufa/kvartiry/5-k_kvartira_156.5_m_1213_et._1048199408" title="5-к квартира, 156.5 м², 12/13 эт. в Уфе">
 5-к квартира, 156.5 м², 12/13 эт.
 </a>
<i class="i-cadastre-ok"></i>
</h3>
<div class="about">
  12 500 000 руб.           <div class="popup-prices popup-prices__wrapper clearfix" data-currencies='{"RUB":{"title":"Рубль","title_plural":"Рублей","sign":"₽"},"USD":{"title":"Доллар","title_plural":"Долларов","sign":"$"},"EUR":{"title":"Евро","title_plural":"Евро","sign":"€"}}' data-date="22 ноября 2017" data-prices='[{"title":"цена","currencies":{"RUB":12500000,"USD":210223.94736665074,"EUR":179035.89884614944}},{"title":"за м²","currencies":{"RUB":79872,"USD":1343.2805699255302,"EUR":1143.9964250111718}}]'> <button class="button button-origin popup-prices-show js-btn-circle"></button> </div>
</div>
</div>
<div> <p class="address fader">
 р-н Ленинский, ул Гоголя, 63к1 </p> </div>
<div class="data">
</div></div></div>, <div class="item item_table clearfix js-catalog-item-enum c-b-0 " data-type="1" id="i954676159">
<div class="b-photo">
<a class="photo-wrapper js-photo-wrapper" href="/ufa/kvartiry/5-k_kvartira_170_m_13_et._954676159" title="Объявление «5-к квартира, 170 м², 1/3 эт.» (4 фотографии)">
<img alt="5-к квартира, 170 м², 1/3 эт." class="photo-count-show" src="//72.img.avito.st/140x105/3936802972.jpg"/>
<span class="photo-icons"><i class="i i-photo">4</i></span>
</a>
</div>
<div class="favorites-add is-design-simple js-favorites-add">
<a class="favorites-add__link js-favorites-add-toggle" data-event-config='{"id":954676159,"active":false,"categorySlug":"kvartiry","rootCategoryId":4,"access":{"favorite":true,"compare":true}}' href="/favorites/add/954676159" title="Добавить в избранное и в сравнение"> <i class="i i-favorites-big js-favorites-add-icon" data-root-category-id="4" data-state="empty"> </i>
<span class="favorites-add__label pseudo-link js-favorites-add-label">В избранное</span> </a>
</div>
<div class="description item_table-description">
<div class="item_table-header">
<h3 class="title item-description-title"> <a class="item-description-title-link" href="/ufa/kvartiry/5-k_kvartira_170_m_13_et._954676159" title="5-к квартира, 170 м², 1/3 эт. в Уфе">
 5-к квартира, 170 м², 1/3 эт.
 </a>
</h3>
<div class="about">
  3 250 000 руб.           <div class="popup-prices popup-prices__wrapper clearfix" data-currencies='{"RUB":{"title":"Рубль","title_plural":"Рублей","sign":"₽"},"USD":{"title":"Доллар","title_plural":"Долларов","sign":"$"},"EUR":{"title":"Евро","title_plural":"Евро","sign":"€"}}' data-date="22 ноября 2017" data-prices='[{"title":"цена","currencies":{"RUB":3250000,"USD":54658.22631532919,"EUR":46549.33369999885}},{"title":"за м²","currencies":{"RUB":19118,"USD":321.5249140604503,"EUR":273.8246651312548}}]'> <button class="button button-origin popup-prices-show js-btn-circle"></button> </div>
</div>
</div>
<div> <p class="address fader">
 р-н Октябрьский, липецкая14 </p> </div>
<div class="data">
                    Агентство
     </div></div></div>]
Если возможно сделать более профессионально, то прошу подсказать.

Заранее благодарен.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
22.11.2017, 14:35
Ответы с готовыми решениями:

Сделал шахматы: прошу критики
Я - начинающий программист-самоучка, программа в архиве - моя первая более-менее серьезная работа, и я хочу чтобы опытные люди указали мне...

PSP (python script protector) - прошу критики
Дня всем доброго. Год назад общаясь со знакомым питонистом, который занимается фрилансом, узнал что защитить свои нетленки в питоне...

Прошу критики и рекомендаций
Уважаемые форумчане! Выношу на ваш суд свою БД. Раньше я никогда не занималась созданием баз, но рискнула взять на себя такую...

1
963 / 718 / 276
Регистрация: 10.12.2016
Сообщений: 1,764
22.11.2017, 14:46
lxml.html/xpath лучше имхо
http://tinman.cs.gsu.edu/~raj/... utput_rus/
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
22.11.2017, 14:46
Помогаю со студенческими работами здесь

Прошу критики от профессионалов...
Все время работал с классическим html, но решил попробовать блогинг. Создал блог 29 января 2012 - сами видите-еще зародыш, но не успел...

Прошу вашей критики
Начинаю делать собственный проект www.geo-rus.ru. Жду вашей критики по всем фронтам. :) Главный вопрос: стоит ли он развития, или...

Прошу вашей критики
Народ, всем привет, в общем я только начал изучать верстку. Взял шаблон вот тут: Хотел сделать резиновую верстку, но остановился...

Прошу конструктивной критики по сайту
есть сайт прошу критики... Может ошибки есть какие ? В выдачу совсем не попадает ... Может кто подскажет по какой причине

Прошу конструктивной критики сайта
Про сопромат sopromat.ueuo.com


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru