gpt4 book ai didi

Python BeautifulSoup 从span标签获取数据

转载 作者:行者123 更新时间:2023-12-01 01:57:44 25 4
gpt4 key购买 nike

请查看以下 html 代码:

<section class = "products">
<span class="price-box ri">
<span class="price ">
<span data-currency-iso="PKR">Rs.</span>
<span dir="ltr" data-price="5999">&nbsp;5,999</span> </span>
<span class="price -old ">
<span data-currency-iso="PKR">Rs.</span>
<span dir="ltr" data-price="9999">&nbsp;9,999</span> </span>
</span>
</section>

在产品部分,有 40 个这样的代码块,其中包含商品的价格。并非所有产品都有旧价格,但所有产品都有当前价格。但是当我尝试访问商品价格时,它也给了我旧的价格,所以我总共得到了 69 个商品价格,应该是 40。我遗漏了一些东西,但由于我是这个领域的新手,所以我无法弄清楚。请有人可以帮忙。谢谢。

最佳答案

您可以使用 CSS 选择器来匹配确切的类名称。例如,在这里,您可以使用 span[class="price "] 作为选择器,它不会匹配旧价格。

html = '''
<section class = "products">
<span class="price-box ri">
<span class="price ">
<span data-currency-iso="PKR">Rs.</span>
<span dir="ltr" data-price="5999">&nbsp;5,999</span>
</span>
<span class="price -old ">
<span data-currency-iso="PKR">Rs.</span>
<span dir="ltr" data-price="9999">&nbsp;9,999</span>
</span>
</span>
</section>'''
soup = BeautifulSoup(html, 'lxml')

for price in soup.select('span[class="price "]'):
print(price.get_text(' ', strip=True))

输出:

Rs. 5,999

或者,您也可以使用自定义函数来匹配类名称。

for price in soup.find_all('span', class_=lambda c: c == 'price '):
print(price.get_text(' ', strip=True))

关于Python BeautifulSoup 从span标签获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49975784/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com