【问题标题】:Find the content between two HTML tags查找两个 HTML 标记之间的内容
【发布时间】:2019-06-24 08:37:31
【问题描述】:

我想使用 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>

【问题讨论】:

  • 您需要一些代码来执行此操作。先尝试搜索您的问题。

标签: python html regex web-scraping beautifulsoup


【解决方案1】:

这取决于完整 HTML 中的其他内容,但使用您提供的 HTML,您可以首先使用 &lt;i&gt; 元素的类 ihome-bed 找到 &lt;i&gt; 元素,然后导航到后面的文本元素。然后可以使用标准 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    

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-14
    • 2012-10-25
    • 2020-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-06
    • 1970-01-01
    相关资源
    最近更新 更多