获取跨html组中的文本

2024-09-30 00:40:06 发布

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

我有这样的结构:

<span class="_1p7iugi">
<span class="_krjbj">Price:</span>$39</span>

我只想得到39美元,但当我这样做时:

def getListingPrice2(listing):
    return listing.find("span", {"class":"_1p7iugi"}).text

它返回给我:

Price: $39

我怎样才能只得到我想要的部分


Tags: textreturndeffind结构priceclassspan
3条回答

span class_1p7iugi包含价格和39美元。 要获得所需内容,请按如下所示更改html代码

<span class="_1p7iugi">Price:</span>
<span class="_krjbj">$39</span>

如果您只想提取价格值,请使用element.contents[-1]

html='''<span class="_1p7iugi">
<span class="_krjbj">Price:</span>$39</span>'''
soup=BeautifulSoup(html,"html.parser")
print(soup.find('span',class_='_1p7iugi').contents[-1])

有趣的问题

from bs4 import BeautifulSoup
mainSoup = BeautifulSoup("""
<html>
<span class="_1p7iugi">
<span class="_krjbj">Price:</span>$39</span>
</html>
""")

external_span = mainSoup.find('span')
print("1 HTML:", external_span)
print("1 TEXT:", external_span.text.strip())

unwanted = external_span.find('span')
unwanted.extract()
print("2 HTML:", external_span)
print("2 TEXT:", external_span.text.strip())

我会帮你的

1 HTML: <span class="_1p7iugi">
<span class="_krjbj">Price:</span>$39</span>
1 TEXT: Price:$39
2 HTML: <span class="_1p7iugi">
$39</span>
2 TEXT: $39

所以

def getListingPrice2(listing):
    outer = listing.find("span", {"class":"_1p7iugi"})
    unwanted = outer.find('span')
    unwanted.extract()
    return outer.text.strip()

我会帮你的

$39

相关问题 更多 >

    热门问题