So kratzen Sie eine Website mit <span class = "ellipsis">… </span> zwischen der Anzahl auf einer dynamischen Tabelle mitPython

Python-Programme
Anonymous
 So kratzen Sie eine Website mit <span class = "ellipsis">… </span> zwischen der Anzahl auf einer dynamischen Tabelle mit

Post by Anonymous »

Ich versuche, Dividendendaten für die Aktien "Tal" auf der Website https://investidor10.com.br/acoes/vale3/ zu kratzen. Die Dividendentabelle verfügt über 8 Tasten (1, 2, 3, ..., 8) und "Weiter" und "vorherige" Tasten. Mein Skript kann Daten aus den ersten 5 Tabellen abkratzen, aber beim Klicken auf die Schaltfläche mit IDX = "5" springt es zu IDX = "8", wodurch die Daten aus dem 6., 7. und 8. Tabellen verpasst werden. Verwenden Sie: < /p>

Code: Select all

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from time import sleep

def iterar_botao():
botoes = driver.find_elements(By.CSS_SELECTOR, "a[data-dt-idx]")
qtd_botoes = len(botoes)

for i in range(qtd_botoes):
clicar_botao(str(i+1))

def clicar_botao(idx):
try:
localizador = (By.CSS_SELECTOR, f'a[data-dt-idx="{idx}"]')
botao = WebDriverWait(driver, 10).until(EC.presence_of_element_located(localizador))

driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
sleep(1)
driver.execute_script("arguments[0].scrollIntoView({behavior:'instant', block:'center' });", botao)
driver.execute_script("arguments[0].click();", botao)

WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, "table-dividends-history")))
pegar_tabelas()  # Function to scrape the tables (not shown here)
except Exception as e:
print(f"Failed to execute function: {e}")
Failed to execute function: Message: RemoteError@chrome://remote/content/shared/RemoteError.sys.mjs:8:8
WebDriverError@chrome://remote/content/shared/webdriver/Errors.sys.mjs:199:5
NoSuchElementError@chrome://remote/content/shared/webdriver/Errors.sys.mjs:552:5
Ich habe versucht, Wartezeiten und Schlafe hinzuzufügen, um sicherzustellen, dass Elemente ordnungsgemäß geladen werden.>

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post