#python #html #beautifulsoup #tags #find
#python #HTML #beautifulsoup #Теги #Найти
Вопрос:
Мне нужно получить только верхний тег div без его вложенных тегов.
<div class="listing-price">
K75,000
<span class="listing-price-sqm">$750000/m<sup>2</sup></span>
</div>
Код, который у меня есть, возвращает как значение из тега класса div, так и из тега класса span :
listing_price = house.find("div", class_="listing-price").text.strip()
Как я могу получить только значение K75 000?
Спасибо
Комментарии:
1. не могли бы вы попробовать
string
вместоtext
и проверить его еще раз. А также добавьте вывод вашего кода к вашему вопросу.2. @iliya результат: 75 000 $ 750000 / м2
3. вы удалили
strip()
из fromstring
? Сделайте это так и отчитайтесь.4. Я обновил код: listing_price = house.find(«div», class_=»listing-price»).string но на этот раз я не получаю значение обратно. В результате у меня «Нет»
5. не могли бы вы дать мне URL-адрес, чтобы у меня была возможность изучить его самостоятельно
Ответ №1:
Вы можете использовать contents
или next_element
для получения значения.
html='''<div class="listing-price">
K75,000
<span class="listing-price-sqm">$750000/m<sup>2</sup></span>
</div>'''
soup=BeautifulSoup(html,"html.parser")
print(soup.select_one(".listing-price").contents[0].strip())
или
print(soup.select_one(".listing-price").next_element.strip())
Вывод:
K75,000
Ответ №2:
Возможно, вы захотите попробовать это:
soup.find('div', {'class': 'listing-price'}).get_text(strip=True, separator='|').split('|')[0]