Python writing to Excel file: writerow() takes no keyword arguments
Please see doc of csv.writer
delimiter param is used when instantiating the writer, not on writerow method.
Furthermore from what I understand, your approach is wrong.
For example you want to scrape the html table and store it as csv file.
But what you do is get the text from table
table = soup.find('table', id='tablepress-94').text.strip()

which is a concatenated string of all columns with no structure and try to split by nothing, which is wrong
while you should be getting a dict of table values, eg using:
table = soup.find('table', id='tablepress-94')
# assuming table has a
# &lt;thead&gt;&lt;tr&gt;&lt;td&gt;Column 1&lt;/td&gt;..&lt;td&gt;Column n&lt;/td&gt;&lt;/tr&gt;&lt;/thead&gt;
# section with column headers, else adjust accordingly
column_headers = [td.get_text() for td in table.find('thead').find('tr').find_all('th')]
print(column_headers)
data = {}
row_index = 0
for row in table.find('tbody').find_all('tr'):
    row_index += 1
    column_index = 0
    columns = row.find_all('td')
    for td in columns:
        if column_index &gt;= len(column_headers):
            column_headers.append('Column_'+str(column_index+1))
        if column_headers[column_index] not in data:
            data[column_headers[column_index]] = []
        data[column_headers[column_index]].append(td.get_text())
        column_index += 1

print(data)
# now output your scarped table data, data into csv properly
writer.writerow(column_headers) # print headers

# print each row of data
for row in range(row_index):
    writer.writerow([data[column][row] for column in column_headers])