我想知道如何从一个网站上废弃信息,其中有多个元素具有相同的标识符,我想从中废弃价格数据。我遇到的问题是,当我循环遍历每个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')