Ich versuche, Excel -Daten zu kratzen, indem auf der folgenden Seite auf mehrere Dropdown -Datum und Auswahldaten klicken. Habe meinen Python -Code unten reproduziert. Der Weblink, den ich versuche zu kratzen: https://www.niftyindices.com/reports/historical-data
Also wähle ich zuerst P/E, P/B aus & Div.yield -Werte, dann wähle ich "Eigenkapital" dann "Nifty 500" im Index aus, wählte dann die aus und zu Daten aus und sendet dann. < /P>
Ich versuche, Excel -Daten zu kratzen, indem auf der folgenden Seite auf mehrere Dropdown -Datum und Auswahldaten klicken. Habe meinen Python -Code unten reproduziert. Der Weblink, den ich versuche zu kratzen: https://www.niftyindices.com/reports/historical-data Also wähle ich zuerst P/E, P/B aus & Div.yield -Werte, dann wähle ich "Eigenkapital" dann "Nifty 500" im Index aus, wählte dann die aus und zu Daten aus und sendet dann. < /P> [code]import os import time import traceback from selenium import webdriver from selenium.webdriver.chrome.service import Service from selenium.webdriver.chrome.options import Options from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import Select, WebDriverWait from selenium.webdriver.support import expected_conditions as EC
try: # ✅ Open the webpage url = "https://www.niftyindices.com/reports/historical-data" print("🔹 Opening webpage...") driver.get(url)
# ✅ Wait for the page to fully load time.sleep(5)
# ✅ Check if there's an iframe and switch to it iframes = driver.find_elements(By.TAG_NAME, "iframe") if iframes: print("🔹 Switching to iframe...") driver.switch_to.frame(iframes[0]) # Switch to the first iframe
# ✅ Select "Equity" from the dropdown print("🔹 Selecting 'Equity' dropdown...") equity_dropdown = wait.until(EC.element_to_be_clickable((By.ID, "ddlHistoricaldivtypee"))) Select(equity_dropdown).select_by_value("Equity") time.sleep(2)
# ✅ Select "NIFTY 500" from the dropdown print("🔹 Selecting 'NIFTY 500' dropdown...") index_dropdown = wait.until(EC.element_to_be_clickable((By.ID, "ddlHistoricaldivtypeeindex"))) Select(index_dropdown).select_by_value("NIFTY 500") time.sleep(2)
# ✅ Function to Select Date def select_date(date_field_id, target_day, target_month, target_year): print(f"🔹 Selecting date: {target_day}-{target_month}-{target_year}")
try: # ✅ Check if date picker is inside an iframe iframes = driver.find_elements(By.TAG_NAME, "iframe") if iframes: print(f"🔹 {len(iframes)} iframe(s) found. Switching to first iframe...") driver.switch_to.frame(iframes[0]) time.sleep(2)
# ✅ Wait for the date picker field to be clickable date_field = wait.until(EC.element_to_be_clickable((By.ID, date_field_id)))
# ✅ Scroll into view if it's off-screen driver.execute_script("arguments[0].scrollIntoView(true);", date_field) time.sleep(1)
# ✅ Wait for CSV download link print("🔹 Waiting for CSV download link...") csv_link = wait.until(EC.element_to_be_clickable((By.ID, "exporthistoricaldiv"))) csv_link.click()
# ✅ Wait for file download print("🔹 Waiting for file download...") time.sleep(15)
# ✅ Verify if file is downloaded print("🔹 Checking downloaded files...") files = os.listdir(download_path) csv_files = [f for f in files if f.endswith(".csv")]
if csv_files: print(f"✅ CSV file downloaded successfully: {csv_files[-1]}") else: print("❌ No CSV file downloaded.")
except Exception as e: print(f"⚠️ An error occurred: {e}") print(traceback.format_exc())
finally: driver.quit()
< /code> Der Fehler, den ich erhalte: < /p> ❌ Error selecting date: 1-1-2024 Traceback (most recent call last): File "c:\users\am364971\documents\python scripts\download_nse_indices.py", line 84, in select_date date_field = wait.until(EC.element_to_be_clickable((By.ID, date_field_id))) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\AM364971\AppData\Local\anaconda3\Lib\site-packages\selenium\webdriver\support\wait.py", line 146, in until raise TimeoutException(message, screen, stacktrace) selenium.common.exceptions.TimeoutException: Message:
🔹 Selecting date: 31-1-2025 ❌ Error selecting date: 31-1-2025 Traceback (most recent call last): File "c:\users\am364971\documents\python scripts\download_nse_indices.py", line 84, in select_date date_field = wait.until(EC.element_to_be_clickable((By.ID, date_field_id))) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\AM364971\AppData\Local\anaconda3\Lib\site-packages\selenium\webdriver\support\wait.py", line 146, in until raise TimeoutException(message, screen, stacktrace) selenium.common.exceptions.TimeoutException: Message:
🔹 Clicking Submit button... 🔹 Waiting for CSV download link... ⚠️ An error occurred: Message:
Traceback (most recent call last): File "c:\users\am364971\documents\python scripts\download_nse_indices.py", line 136, in csv_link = wait.until(EC.element_to_be_clickable((By.ID, "exporthistoricaldiv"))) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\AM364971\AppData\Local\anaconda3\Lib\site-packages\selenium\webdriver\support\wait.py", line 146, in until raise TimeoutException(message, screen, stacktrace) selenium.common.exceptions.TimeoutException: Message: [/code] Bitte helfen Sie beim Debuggen.
Ich verwende das sqlite3-Modul in Python 2.6.4, um eine Datums- und Uhrzeitangabe in einer SQLite-Datenbank zu speichern. Das Einfügen ist sehr einfach, da SQLite das Datum automatisch in einen...
Für Dev/Testzwecke habe ich nur Daten Anfang Januar aus einem Power BI -Datenfluss verfügbar. Aus diesem Grund habe ich die Aktualisierungsrichtlinien mit effektives Gesetz angewendet, wie in dieser...
Ich versuche, an einem Projekt zu arbeiten, und ich muss die Links von Google Image-Ergebnissen abrufen. from selenium.webdriver.common.by import By
from selenium.webdriver.common.action_chains...
Ich bringe Ihnen eine Frage zu einem Tag Ich arbeite für eine Website. Ich glaube, dass der Code, den ich hier schreibe, in Ordnung sein sollte, aber wenn man bedenkt, dass ich bei JS ziemlich neu...
Ich bringe Ihnen eine Frage zu einem Tag Ich arbeite für eine Website. Ich glaube, dass der Code, den ich hier schreibe, in Ordnung sein sollte, aber wenn man bedenkt, dass ich bei JS ziemlich neu...