Вам нужно записать его в режиме append
:
import pandas as pd
elem = driver.find_elements_by_class_name("product-listing-row")
header = True
for ii in elem:
pname = ii.find_element_by_class_name('product-name').text
psku = ii.find_element_by_class_name('product-code').text
thumb = ii.find_element_by_class_name('scaleAll').get_attribute('src')
link = ii.find_element_by_css_selector('a').get_attribute('href')
raw_data = {'Product_Name': [pname],
'Product_SKU': [psku],
'Product_ImageURL': [thumb],
'Product _URL': [link]}
df = pd.DataFrame(raw_data, columns = ['Product_Name', 'Product_SKU', 'Product_ImageURL', 'Product _URL'])
df.to_csv (r'/Users/reezalaq/PycharmProjects/wholesale/data.csv', mode="a", header=header)
header = False
Это добавит заголовок к вашему csv только на первой итерации, а затем добавит все новые строки вфайл.
В качестве альтернативы, вы можете сделать DataFrame один раз, а затем сохранить его:
import pandas as pd
elem = driver.find_elements_by_class_name("product-listing-row")
raw_data = {'Product_Name': [],
'Product_SKU': [],
'Product_ImageURL': [],
'Product_URL': []
}
for ii in elem:
raw_data['Product_Name'].append(
ii.find_element_by_class_name('product-name').text
)
raw_data['Product_SKU'].append(
ii.find_element_by_class_name('product-code').text
)
raw_data['Product_ImageURL'].append(
ii.find_element_by_class_name('scaleAll').get_attribute('src')
)
raw_data['Product_URL'].append(
ii.find_element_by_css_selector('a').get_attribute('href')
)
df = pd.DataFrame(raw_data)
df.to_csv (r'/Users/reezalaq/PycharmProjects/wholesale/data.csv')