Я хочу сохранить данные таблицы HTML в файл CSV.
Я написал следующий код, используя python, selenium, BeautifulSoup, pandas, tabulate, numpy.
from selenium import webdriver
from bs4 import BeautifulSoup
import pandas as pd
from tabulate import tabulate
import numpy as np
#---Some code are here
datalist2 = []
for i in range(1, total+1):
xpath="/html/body/div[3]/table/tbody/tr/td[2]/div[2]/table/tbody/tr["+str(i)+"]/td[1]/a/img"
driver.find_element_by_xpath(xpath).click()
print("Open button " + str(i) + " Clicked")
soup_level2=BeautifulSoup(driver.page_source, 'lxml')
table2=soup_level2.find_all('table')[0]
df2=pd.read_html(str(table2),header=0)
datalist2.append(df2[0])
driver.execute_script("window.history.go(-1)")
print("moving_back_to_previous_page")
for i in range(len(datalist2)):
print(tabulate(datalist2[i]))
#text_file=open("output.csv","w")
#text_file.write(str(datalist2))
#text_file.close()
#print("report generated and saved")
#np.savetxt("output.csv", datalist2, delimiter=",", fmt='%s')
Этот код print(tabulate(datalist2[i]))
отображает данные таблицы в консоли.
Пример вывода print(tabulate(datalist2[i]))
0 Date Crashed nan 2018-10-09 07:56:49 UTC
1 Date Reported nan 2018-10-09 07:56:57 UTC
2 Date Built nan 2018-06-06 01:26:35 UTC
3 Crash Reason nan SIGSEGV
4 Crash Addr nan 0x0
5 Dump file name nan 9556393da77a562fa086b0147a37106c6ff4bb76_mac14B7F66_dat2018-10-09-07-56-49_boxXB6_modC40COM_54dc2dd1-9abe-a568-1e3119e4-1908ccb0.dmp.tgz
Этот код text_file.write(str(datalist2))
сохраняет datalist2 в файл CSV.Есть проблема с этим кодом.Это не показывает длинный текст.Например, индекс 5 не может полностью отобразить имя файла дампа.Пример вывода text_file.write(str(datalist2))
0 Date Crashed NaN 2018-10-09 07:56:49 UTC
1 Date Reported NaN 2018-10-09 07:56:57 UTC
2 Date Built NaN 2018-06-06 01:26:35 UTC
3 Crash Reason NaN SIGSEGV
4 Crash Addr NaN 0x0
5 Dump file name NaN 9556393da77a562fa086b0147a37106c6ff4bb76_mac14...
Я также хочу удалить столбец индекса, а второй столбец содержит «nan» в качестве значения.Я хочу сохранить эти данные в файл CSV.Как я могу это сделать?