为什么Selenium python只写我的刮刀收集多行数据的csv的第一行?



我正在使用硒从网站收集数据。我的刮刀收集多行数据,但我的csv文件只写第一行。下面是我的代码:

for page in range(1,34):
url = ('my website url')

driver.get(url)
company_name = driver.find_element_by_css_selector('.partner-name--text')
if company_name:
company_name = company_name.text
else:
company_name = "Not Found"

header = ['company_name']
data = [company_name]
with open('sap.csv', 'w', encoding='UTF8') as f:
writer = csv.writer(f)
# write the header
writer.writerow(header)
# write the data
writer.writerow(data)
driver.quit() 

我正在收集多个公司名称,但在我的csv文件中只看到第一个公司名称。

问题是你重写了很多次文件,而不是追加它:

data = []
for page in range(1,34):
url = ('my website url')
driver.get(url)
company_name = driver.find_element_by_css_selector('.partner-name--text')
if company_name:
company_name = company_name.text
else:
company_name = "Not Found"
data.append(company_name)
driver.quit() 
with open('sap.csv', 'w', encoding='UTF8') as f:
writer = csv.writer(f)
# write the header
writer.writerow(['company_name'])
# write the data
writer.writerows(data)

最新更新