Python имеет встроенный модуль для записи в CSV. Ниже приведен пример двух функций; создайте файл CSV с заголовками и запишите свои данные в CSV. Если вы передадите список значений в функцию write_to_csv (), он запишет весь список в CSV, одно значение для столбца
from csv import writer
# creates initial CSV with headers
def create_csv(file_name):
with open(file_name, 'w', newline='') as f:
csv_writer = writer(f, delimiter=',')
headers = ['Title', 'Company', 'Salary']
csv_writer.writerow(headers)
# appends data to the next row in a CSV file
def write_to_csv(file_name, row):
with open(file_name, 'a', newline='') as f:
csv_writer = writer(f, delimiter=',')
csv_writer.writerow(row)
Для базы данных это будет зависеть от того, какую базу данных вы используете, например, SQLite3, который также поставляется с Python
import sqlite
def write_to_db(data):
db.cursor.execute("INSERT INTO ..... """)
db.commit
В начале вашего скрипта вы создадите CSV, а затем, когда вы соберете свои данные, вызовите обе функции для записи в CSV и в DB
file_name = "My_CSV.csv"
create_csv(file_name)
for result in result_set:
data = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.ID, "resultsCol")))
result_set = WebDriverWait(data, 10).until(
EC.presence_of_all_elements_located((By.CLASS_NAME, "jobsearch-SerpJobCard")))
for result in result_set:
to_write = [] # list container for your data
title = result.find_element_by_class_name("title").text
to_write.append(title) # append to list to write
school = result.find_element_by_class_name("company").text
to_write.append(school) # append to list to write
try:
salary = result.find_element_by_class_name("salary").text
to_write.append(salary) # append to list to write
except:
to_write.append("")
pass
print("--------")
# pass the data to the functions to write it out
write_to_csv(file_name, to_write)
write_to_db(to_write)
# move to next page
next_page = result.find_elements_by_xpath("//span[@class='pn']")[-1]
driver.execute_script("arguments[0].click();", next_page)