查找两个HTML标记之间的内容

时间:2019-01-30 23:34:08

标签: python html regex web-scraping beautifulsoup

我想使用Python beautifulsoup仅提取此HTML代码中的数字“ 4”,该怎么办?

<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 :(得分:0)

这取决于完整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