Переменные product_name
, product_number
, category
могут хранить только одно значение - последнее значение из цикла.
Таким образом, вы можете использовать print()
внутри цикла для просмотра значений
import csv
f = open(filename, 'w')
csv_writer = csv.writer(f)
# header
csv_writer.writerow( ["Product Name", "Product number", "Category"] )
for container in containers:
product_name = container.a.text
product_number = container.div.text
category = container.select_one('td:nth-of-type(4)').text.strip()
# single row
csv_writer.writerow( [product_name, product_number, category] )
print("product_name:", product_name)
print("product_number:", product_number)
print("category: ", category)
f.close()
Или вам нужно создать список и использовать append()
для добавления значений в список
product_name = []
product_number = []
category = []
for container in containers:
product_name.append( container.a.text )
product_number.append( container.div.text )
category.append( container.select_one('td:nth-of-type(4)').text.strip() )
#--- later ---
print("product_name:", product_name)
print("product_number:", product_number)
print("category: ", category)
f = open(filename, 'w')
csv_writer = csv.writer(f)
# header
csv_writer.writerow( ["Product Name", "Product number", "Category"] )
for a, b, c in zip(product_name, product_number, category):
# single row
csv_writer.writerow( [a, b, c] )
f.close()
РЕДАКТИРОВАТЬ: вы также можете сохранить его в виде списка со словарями
all_items = []
for container in containers:
item = {
'product_name': container.a.text,
'product_number': container.div.text,
'category': container.select_one('td:nth-of-type(4)').text.strip(),
}
all_items.append(item)
# --- later ---
f = open(filename, 'w')
csv_writer = csv.writer(f)
# header
csv_writer.writerow( ["Product Name", "Product number", "Category"] )
for item in all_items:
print("product_name:", item['product_name'])
print("product_number:", item['product_number'])
print("category: ", item['category'])
# single row
csv_writer.writerow( [item['product_name'], item['product_number'], item['category']] )
f.close()