Selenium WebDriver逐行将数据写入CSV

时间:2018-07-28 12:44:34

标签: python csv selenium

我正在尝试使用Selenium在CSV文件中写入一些数据

运行代码

labels = browser.find_elements_by_xpath('.//a[@class="question-hyperlink"]')
text = [x.text for x in labels]
data.append(text)
print(text)
with open('output.csv', 'wb') as data_file:
    writer = csv.writer(data_file)
    writer.writerows(data)

输出是

data1  data2  data3  data4  data5
data6  data7  data8  data9  data10
data11 data12 data13 data14 data15

但是我想写如下数据

data1
data2
data3
data4
.....
data15

我该怎么做?
请帮助我。

2 个答案:

答案 0 :(得分:1)

使用writer = csv.writer(data_file, delimiter='\n')分隔符

labels = browser.find_elements_by_xpath('.//a[@class="question-hyperlink"]')
text = [x.text for x in labels]
data.append(text)
print(text)
with open('output.csv', 'wb') as data_file:
    writer = csv.writer(data_file, delimiter='\n')
    writer.writerows(data)

答案 1 :(得分:1)

data.append(text)更改为data.extend(text)。 这样,您将拥有一个平面列表data而不是列表列表。

为了使每行有一个值,您需要 data中的每个项目

 writer.writerows(map(lambda x: [x], data))