【问题标题】:How to get text from <div> with included <span> with beautiful soup如何从包含 <span> 的 <div> 和漂亮的汤中获取文本
【发布时间】:2018-11-01 14:09:43
【问题描述】:

这是HTML代码

<div class="mxjs-variant-selector mx-variant-selector"
     data-ga-label=""
     name="" >Title <br>
              <span class="mx-price">Price</span>
</div>

我想在各种变量中获取TitlePrice

这是我的代码

name_box = soup.find('div', attrs={'class': 'mxjs-variant-selector mx-variant-selector'})
title = name_box.text.strip()
name_box1 = soup.find("div", class_="mxjs-variant-selector mx-variant-selector").find("span", class_="mx-price").text
price = name_box1

关于我得到的标题

Title
(with newline)
Price

我得到的价格

Price

【问题讨论】:

  • 到目前为止你尝试了什么?
  • 我有编辑第一帖
  • 您可以添加您要废弃的网页的网址吗?或添加包含您尝试打印的价格的 HTML 数据
  • 在这个问题上my answer 是什么,它可能包含你想要的内容

标签: python python-3.x beautifulsoup


【解决方案1】:

首先从span 元素中获取文本,然后将其从汤中移除。然后你可以得到title:

from bs4 import BeautifulSoup

html = """<div class="mxjs-variant-selector mx-variant-selector"
     data-ga-label=""
     name="" >Title <br>
              <span class="mx-price">Price</span>
</div>"""

soup = BeautifulSoup(html, "html.parser")

div = soup.find("div", class_="mxjs-variant-selector mx-variant-selector")
price = div.span.text
div.span.extract()
title = div.get_text(strip=True)

print(title)
print(price)

给你:

Title
Price

【讨论】:

  • 感谢这对我有用。我只需要将title = soup.div.get_text(strip=True) 替换为title = div.get_text(strip=True)
  • 确实,这就是它的本意。
猜你喜欢
  • 1970-01-01
  • 2021-08-13
  • 2018-07-03
  • 2019-11-10
  • 2015-11-07
  • 2014-11-01
  • 1970-01-01
  • 2022-01-12
  • 2021-11-27
相关资源
最近更新 更多