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

2024-05-03 16:10:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用selenium从网站收集数据。我的刮板收集了多行数据,但我的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文件中只看到第一个公司名称


1条回答
网友
1楼 · 发布于 2024-05-03 16:10:16

问题是您多次重新写入文件,而不是追加文件:

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)

相关问题 更多 >