python嵌套标记(漂亮的汤)

2024-09-28 19:08:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用了BeautifulSoup,使用python从特定网站获取数据 但我不知道如何得到这些价格中的一个,但我想要以克(g)为单位的价格 如下所示,这是HTML代码:

<div class="promoPrice margBottom7">16,000 
L.L./200g<br/><span class="kiloPrice">79,999 
L.L./Kg</span></div>

我使用以下代码:

p_price = product.findAll("div{"class":"promoPricemargBottom7"})[0].text

我的结果是: 16,000 L.L./200g 79,999 L.L./Kg

但我想: 16000升/200克 只有


Tags: 代码brdiv网站html单位价格price
2条回答

您需要首先decomposediv元素内的跨度:

from bs4 import BeautifulSoup

h = """
<div class="promoPrice margBottom7">16,000 L.L./200g<br/>
<span class="kiloPrice">79,999 L.L./Kg</span></div>
"""

soup = BeautifulSoup(h, "html.parser")
element = soup.find("div", {'class': 'promoPrice'})
element.span.decompose()
print(element.text)
#16,000 L.L./200g

尝试使用soup.select_one('div.promoPrice').contents[0]

from bs4 import BeautifulSoup

html = """<div class="promoPrice margBottom7">16,000 L.L./200g<br/>
<span class="kiloPrice">79,999 L.L./Kg</span></div>"""

soup = BeautifulSoup(html, features='html.parser')

# value = soup.select('div.promoPrice > span')  # for 79,999 L.L./Kg
value = soup.select_one('div.promoPrice').contents[0]
print(value)

印刷品

 16,000 L.L./200g

相关问题 更多 >