我正在尝试使用Selenium创建一个scraper,然后将数据写入CSV文件。 每次我运行下面的脚本时,它都会生成一个数据.csv但是输出被反复地写在同一行上,结果只有一行。你知道吗
如何将输出写入单独的行?你知道吗
import pandas as pd
elem = driver.find_elements_by_class_name("product-listing-row")
for ii in elem:
pname = ii.find_element_by_class_name('product-name').text
print('pname: ' + pname)
psku = ii.find_element_by_class_name('product-code').text
print('psku: ' + psku)
thumb = ii.find_element_by_class_name('scaleAll').get_attribute('src')
print('thumb: ' + thumb)
link = ii.find_element_by_css_selector('a').get_attribute('href')
print('address: ' + link)
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')
问题在于:
对于每个
elem
,您将覆盖raw_data
。相反,你可以这样做:更改为
df.to_csv(r'/Users/reezalaq/PycharmProjects/wholesale/data.csv', mode='a', header=False)
必须将每个元素都附加到列表中。你知道吗
这是一个例子。在循环内检索元素并将结果附加到列表中,该列表必须包含在循环外的数据帧中:
相关问题 更多 >
编程相关推荐