Я пытаюсь получить исторические данные с веб-сайта государственных закупок. На этом веб-сайте есть таблица, отображающая страницы из 20 записей, но мой код не отвечает, когда он превышает 2 миллиона регистров, повторяя страницы.
path_proceso = 'https://www.compraspublicas.gob.ec/ProcesoContratacion/compras/IC/buscarInfima.cpe'
headers_df = ['Nro','cod_Factura','FechaEmisiónFactura','CPC','Descripcion_CPC','Razon_Social','Objeto_Compra','Cantidad','Costo_Unidad','Valor','Justificativo','Tipo_Compra','Responsable_Administrativo']
driverInstance = webdriver.Chrome()
driverInstance.get(path_proceso)
driverInstance.maximize_window()
driverInstance.execute_script('document.getElementsByName("f_inicio")[0].removeAttribute("readonly")')
driverInstance.execute_script('document.getElementsByName("f_fin")[0].removeAttribute("readonly")')
datepicker_from_ini = driverInstance.find_element_by_xpath("//input[@id='f_inicio']").clear()
datepicker_from_end = driverInstance.find_element_by_xpath("//input[@id='f_fin']").clear()
driverInstance.find_element_by_id("f_inicio").send_keys("2018-06-30")
driverInstance.find_element_by_id("f_fin").send_keys("2018-12-31")
driverInstance.find_elements_by_name("btnBuscar")[1].click()
soup_html = BeautifulSoup(driverInstance.page_source, 'lxml')
table_rows = soup_html.find("div", {"id": "divProcesos"}).contents[0].find_all('tr')
datalist = []
while true:
for tr in table_rows:
test_df = driverInstance.find_element_by_xpath("//div[@id='divProcesos']/table").get_attribute('outerHTML')
df_data = pd.read_html(test_df)
elem = driverInstance.find_element_by_xpath('//a[text()="Siguiente"]')
driverInstance.find_element_by_xpath('//a[text()="Siguiente"]').click()
table_rows = table_rows
datalist.append(df_data)
driverInstance.quit()
result = pd.concat([pd.DataFrame(datalist[i]) for i in range(len(datalist))], ignore_index=True)
json_records = result.to_json(orient='records')
Вы знаете, как я мог бы заставить эту работу?