Python - Beautifulsoup -具有相同类名的循环div标签



我想知道如何从一个网站上废弃信息,其中有多个元素具有相同的标识符,我想从中废弃价格数据。我遇到的问题是,当我循环遍历每个div和print()时,我看到它在控制台中粘贴了多次。我假设这是du到div,我正在定位具有相同标记+ classname的封装的多个元素。

HTML页面符号

GraphicPrice = soup.findAll('div', class_='col')
for price in GraphicPrice:
prices = price.find('span', class_='price__amount')
if prices is None:
pass
else:
print(prices.text)

输出:

£859.99
£859.99
£1,049.99
£1,049.99
£829.99
£829.99
£899.99
£899.99
£999.95
£999.95
£999.95
£999.95

我想要的是消除重复的信息,并了解如何重构我的代码来防止这种情况的发生。

我希望页面上的每个元素的价格被打印。目前我得到了价格,但它被重复了3次。

任何帮助都会很感激。(我还在学习):)

首先,去掉所有带有"col"类

soup.findAll('div', class_='col')

这个div标签有一个span类,而那个类有另外两个嵌套的span标签。

所以,如果你像这样编码

price.find('span', class_='price__amount') 

去掉两个带有"price_amount"在每个div标签上。这代表一个错误的类。

如果你想要第二个span标签,那么你的代码是这样的:

soup.findAll('span', class_='price--sale--colored').find('span', class_='price__amount')

使用.select('span')从选定对象的内部获取对象,如

GraphicPrice = soup.findAll('div', class_='col')
for price in GraphicPrice:
prices = price.select('span')

最新更新