Найти содержимое между двумя тегами HTML - PullRequest
0 голосов
/ 31 января 2019

Я хочу извлечь только число «4» в этом HTML-коде, используя Python beautifulsoup, что мне делать?

<ul class="left slider_pinfo">
    <li>
                <i class="ihome-bed"></i>
                       " 4"
                        <div class="meta-tooltip">bed</div>
                <span class="right listing-sp"></span>
                </li>
                                                <li>
                    <i class="ihome-arrows"></i>
                    "300meter"
                    <div class="meta-tooltip">meter</div>
                </li>
                                                <li>
                    <i class="ihome-building-age"></i>
                    "6years"
                    <div class="meta-tooltip">age</div>
                </li>
                        </ul>

1 Ответ

0 голосов
/ 02 февраля 2019

Это зависит от того, что еще находится в полном HTML, но, используя предоставленный вами HTML, вы можете сначала найти элемент <i>, используя его класс ihome-bed, а затем перейти к следующему текстовому элементу.Стандартный Python strip() может быть использован для удаления пробелов и символов кавычек.Например:

from bs4 import BeautifulSoup

html = """<ul class="left slider_pinfo">
    <li>
        <i class="ihome-bed"></i>
               " 4"
                <div class="meta-tooltip">bed</div>
        <span class="right listing-sp"></span>
        </li>
                                        <li>
            <i class="ihome-arrows"></i>
            "300meter"
            <div class="meta-tooltip">meter</div>
        </li>
                                        <li>
            <i class="ihome-building-age"></i>
            "6years"
            <div class="meta-tooltip">age</div>
        </li>
                </ul>"""

soup = BeautifulSoup(html, "html.parser")
number = soup.find('i', class_='ihome-bed').next_element.strip('\n" ')

print(number)

Будет отображаться:

4    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...