Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/90.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 获取跨html组中的文本_Python_Html_Beautifulsoup - Fatal编程技术网

Python 获取跨html组中的文本

Python 获取跨html组中的文本,python,html,beautifulsoup,Python,Html,Beautifulsoup,我有这样的结构: <span class="_1p7iugi"> <span class="_krjbj">Price:</span>$39</span> 它返回给我: Price: $39 我怎样才能只得到我想要的零件?span class\u 1p7iugi包含价格和39美元。 要获得所需内容,请按如下所示更改html代码 <span class="_1p7iugi">

我有这样的结构:

<span class="_1p7iugi">
<span class="_krjbj">Price:</span>$39</span>
它返回给我:

Price: $39

我怎样才能只得到我想要的零件?

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

<span class="_1p7iugi">Price:</span>
<span class="_krjbj">$39</span>
价格:
$39
有趣的问题

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

$39

如果您只想提取价格值,请使用
元素。内容[-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])
html=''
价格:$39“
soup=BeautifulSoup(html,“html.parser”)
打印(soup.find('span',class_uu=''uu 1p7iugi')。内容[-1])

谢谢!这正是我想要的。
def getListingPrice2(listing):
    outer = listing.find("span", {"class":"_1p7iugi"})
    unwanted = outer.find('span')
    unwanted.extract()
    return outer.text.strip()
html='''<span class="_1p7iugi">
<span class="_krjbj">Price:</span>$39</span>'''
soup=BeautifulSoup(html,"html.parser")
print(soup.find('span',class_='_1p7iugi').contents[-1])