Как получить нужные значения?

Есть код

soup = BeautifulSoup(map, 'lxml')
items = soup.find_all('div', class_='map-icon house-for-sale')

выводит строки по типу: <div class="map-icon house-for-sale" data-html="true" data-original-title="&lt;div class='text-center'&gt;№ 98&lt;br&gt;&lt;br&gt;Стоимость: 400000 $&lt;/div&gt;" data-toggle="tooltip" style="top:947.992px;left:1074.047px;background:url(/images/house_1.gif)" title=""></div>

Пытался 

for x in items:
    s = x.find('div', class_='text-center')

Но ничего не находит. Суть в том, чтобы получить значения '№' и 'Стоимость'. Как это можно реализовать?


Ответы (1 шт):

Автор решения: gil9red

Значение, что вы хотите вытащить увидел в атрибуте data-original-title. Оно там как кусок html хранится.

Поэтому, чтобы его извлечь как текст, нужно его распарсить:

from bs4 import BeautifulSoup


html = """
<div class="map-icon house-for-sale" data-html="true" data-original-title="&lt;div class='text-center'&gt;№ 98&lt;br&gt;&lt;br&gt;Стоимость: 400000 $&lt;/div&gt;" data-toggle="tooltip" style="top:947.992px;left:1074.047px;background:url(/images/house_1.gif)" title=""></div>
<div class="map-icon house-for-sale" data-html="true" data-original-title="&lt;div class='text-center'&gt;№ 98&lt;br&gt;&lt;br&gt;Стоимость: 500000 $&lt;/div&gt;" data-toggle="tooltip" style="top:947.992px;left:1074.047px;background:url(/images/house_1.gif)" title=""></div>
<div class="map-icon house-for-sale" data-html="true" data-original-title="&lt;div class='text-center'&gt;№ 98&lt;br&gt;&lt;br&gt;Стоимость: 600000 $&lt;/div&gt;" data-toggle="tooltip" style="top:947.992px;left:1074.047px;background:url(/images/house_1.gif)" title=""></div>
"""


soup = BeautifulSoup(html, 'lxml')
items = soup.find_all('div', class_='map-icon house-for-sale')

for x in items:
    data_original_title = x['data-original-title']
    print(data_original_title)

    title_el = BeautifulSoup(data_original_title, 'lxml')
    print(title_el.get_text(strip=True, separator='\n'))

    print()

Результат:

<div class='text-center'>№ 98<br><br>Стоимость: 400000 $</div>
№ 98
Стоимость: 400000 $

<div class='text-center'>№ 98<br><br>Стоимость: 500000 $</div>
№ 98
Стоимость: 500000 $

<div class='text-center'>№ 98<br><br>Стоимость: 600000 $</div>
№ 98
Стоимость: 600000 $
→ Ссылка