我似乎无法正确地将数据导出到单个变量中,也无法将此变量导出到csv文件中。我在做什么错了?
我尝试过:
csvFile = open('products.csv', 'w')
writer = csv.writer(csvFile)
writer.writerow(('name', 'price'))
url = 'https://www.ah.nl/producten/aardappel-groente-fruit/groente/merk=AH'
driver = webdriver.Chrome()
driver.get(url)
driver.implicitly_wait(100)
def itemGrabber(url):
items = driver.find_elements_by_class_name('product')
print(str(len(items)) + " items found on page.")
item = []
for i in items:
## name of product
t = i.find_element_by_class_name('product-description__title').text.replace("\xad", "")
## price
p = i.find_element_by_class_name('product-price').text
item.append(t)
item.append(p)
print(item)
return item
products = itemGrabber(url)
writer.writerow(products)
csvFile.close()
csv中的结果是:
name,price
yoghurt,1.0,banana,2.0,kinkytoy,6.99
我希望将其正确分类。我尝试将t和p转换为列表并将其添加到变量'item',但这甚至更糟。你能给我一些技巧,使它变得更好吗?感谢您的耐心等候。
答案 0 :(得分:0)
使用更高级别的库(例如熊猫),您可能可以更有效地做到这一点。
但是您真正缺少的是一种告诉csvwriter行中断在哪里并且您将整个数组写为一行的方法。
考虑更改
item.append([t,p])
到
writer.writerow(products)
,然后更改您的编写者代码for product in products:
writer.writerow(product)
timeout
答案 1 :(得分:0)
您可以直接将其作为一行直接写入csv,而不必使用集合。
@section