Boa tarde, Gostaria de um auxilio se possível, ao testar a mesma metodologia aprendida no curso de scraping em um outro site, funcionou corretamente para as primeiras 30 paginas das 50, a partir de uma página apresenta o erro. A questão é possível dar um pass, caso não encontre a informação desejada em algum dos cards ? Obrigado
for card in cards:
produto = {}
# Adicionando resultado à lista cards
produto['Data'] = datetime.today().strftime('%Y-%m-%d')
produto['Empresa'] = 'Continente'
produto['Cod_Produto'] = card.find('div',{'class':'product'}).get('data-pid')
produto['Marca'] = card.find('p',{'class':'ct-tile--brand'}).getText()
produto['Design'] = card.find('a',{'class':'ct-tile--description'}).getText()
produto['Tipo_Embalagem'] = card.find('p',{'class':'ct-tile--quantity'}).getText()
##produto['PVP Recomendado'] = card.find('p',{'class':'ct-discount-amount ct-discount-amount-pvpr'}).getText().replace('PVP Recomendado: ','')
produto['Preco_1'] = card.find('span',{'class':'ct-price-formatted'}).getText().replace('\n','').replace('/','')
produto['Preco_Formato'] = card.find('span',{'class':'ct-m-unit'}).getText().replace('\n','').replace('/','')
produto['Preco_lt_kg'] = card.find('span',{'class':'ct-price-value'}).getText().replace('\n','').replace('/','')
infos = card.find('div',{'class':'ct-tile--price-secondary'}).findAll('span')
for info in infos:
produto['Preco_Formato2'] = info.get_text()[2:4].split(',')[-1]
##produto['Desconto'] = card.find('span',{'class':'ct-product-tile-badge-value--pvpr'}).getText().replace('\n','').replace('/','')
produto['Link'] = card.find('a',{'class':'ct-tile--description'}).get('href')
produto['link_img'] = card.find('img',{'class':'ct-tile-image'}).get('data-src')
# Adicionando resultado a lista cards
produtos.append(produto)
# Imagens
image = card.find('img',{'class':'ct-tile-image'}).get('data-src')
urlretrieve(image, './output/img_sonae/' + image.split('/')[-1].split('.')[0].split('-')[0]+'.jpeg')
# Criando um DataFrame com os resultados
#dataset = pd.DataFrame.from_dict(produto, orient = 'index').T
dataset = pd.DataFrame(produtos)
dataset.to_csv('./output/data/'+datetime.today().strftime('%Y-%m-%d')+'-continente.csv', sep=';', index = False, encoding = 'utf-8-sig')
dataset
`
AttributeError Traceback (most recent call last) in 28 produto['Preco_1'] = card.find('span',{'class':'ct-price-formatted'}).getText().replace('\n','').replace('/','') 29 produto['Preco_Formato'] = card.find('span',{'class':'ct-m-unit'}).getText().replace('\n','').replace('/','') ---> 30 produto['Preco_lt_kg'] = card.find('span',{'class':'ct-price-value'}).getText().replace('\n','').replace('/','') 31 infos = card.find('div',{'class':'ct-tile--price-secondary'}).findAll('span') 32 for info in infos:
AttributeError: 'NoneType' object has no attribute 'getText'