【问题标题】:Extract Parent Text without Children Text; Parsing HTML提取没有子文本的父文本;解析 HTML
【发布时间】:2022-01-20 02:30:40
【问题描述】:

我使用Selenium 和BeautifulSoup 提取了一小部分汤标签元素。

<footer>
    <p class="tags environment-tags">Environment:
      <span class="tag environment-tag">Desert</span>
    </p>
    <p class="source monster-source">Basic Rules
      <span class="page-number">, pg. 334</span>
    </p>
</footer>

我试图从 p 元素中获取文本,但每次我尝试它都会获取跨度。到目前为止,这是我尝试过的:

for p in Environment.findAll('p'):
    print(p.text)

我也尝试使用.extract() 提取信息,但这似乎对我不起作用。

【问题讨论】:

    标签: python selenium loops beautifulsoup


    【解决方案1】:

    您可以使用.contents 并访问第 0 个元素:

    for tag in soup.find_all("p"):
        print(tag.contents[0].strip())
    

    输出:

    Environment:
    Basic Rules
    

    或者通过您的尝试,您可以通过以下方式使用.extract() 删除&lt;span&gt;:

    for tag in soup.select("p span"):
        tag.extract()
    
    print(soup.prettify())
    

    输出:

    <footer>
     <p class="tags environment-tags">
      Environment:
     </p>
     <p class="source monster-source">
      Basic Rules
     </p>
    </footer>
    

    【讨论】:

    • 谢谢,这是一个完美的答案。我没有意识到我可以使用 contents 方法访问元素。知道真的很酷。谢谢!
    猜你喜欢
    • 2023-03-04
    • 2011-02-06
    • 2011-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-19
    • 1970-01-01
    • 2013-06-10
    相关资源
    最近更新 更多