我试图在Internet上捕获一些信息并将其存储到xlsx文件中,但是我需要每15分钟更新一次database.xlsx。
我已经尝试使用xlwt和xlsxwriter,但是它们都无法更新database.xlsx。 现在我正在尝试这个熊猫,不知道为什么不更新。
import pandas as pd
import xlsxwriter
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import os
import datetime
import time
def limpa_texto(texto_lista):
dados_unicos = []
linha_certa = 0
for linha, dados in enumerate(texto_lista):
if len(dados_unicos) != 0:
if dados != dados_unicos[linha_certa]:
dados_unicos.append(texto_lista[linha])
linha_certa += 1
else:
dados_unicos.append(texto_lista[linha])
return(dados_unicos)
os.chdir('C:/Users/danie/Desktop/Google Drive/GRUVE/AAA PROJETO - DANIEL E RENAN/Python')
loc_webdriver = 'C:/Users/danie/PycharmProjects/chromedriver.exe'
chrome_options = Options()
chrome_options.add_argument('--headless')
driver = webdriver.Chrome(executable_path = loc_webdriver, options = chrome_options)
writer = pd.ExcelWriter('database.xlsx', engine='xlsxwriter')
linha = 0
lista_dados = []
while True:
driver.get('http://dadosabertos.rio.rj.gov.br/apiTransporte/apresentacao/rest/index.cfm/obterTodasPosicoes')
elementos = driver.find_elements_by_xpath("//pre[contains(@style, 'word-wrap')]")
for a in elementos:
texto = a.get_attribute('innerHTML')
texto = texto[84:]
texto = texto.replace('[','')
texto = texto.replace('"','')
texto = texto.replace(']}','')
texto = texto.split(']')
texto = limpa_texto(texto)
for dados in texto:
dados = dados.split(',')
if linha != 0:
dados = dados[1:]
lista_dados.append(dados)
linha += 1
df = pd.DataFrame(lista_dados)
df.to_excel(writer, index=False, sheet_name='Banco de dados')
writer.save()
print(datetime.datetime.now().strftime('Banco de Dados atualizado - ' + '%d-%m-%Y_%H:%M:%S'))
time.sleep(900)
我想代码将每900秒保存一个新的database.xlsx,但是它创建了一个database.xlsx,并且不使用每个15分钟的值对其进行更新,但是没有显示错误。 如果使用print(len(df)),则将显示更高的值,但不要创建具有更高信息的另一个文件。