Page 1 of 1

Laden Sie PDF mit Web -Scraping mit Selenium herunter

Posted: 06 Sep 2025, 13:55
by Guest
Ich versuche, Selenium zum Herunterladen eines PDF mit Web -Schrott zu verwenden. Die Interaktion funktioniert jedoch nur bis zum OACY -Taste. Ich kann kein Datum einfügen (9/5/25 Format).

Code: Select all

def algonquin_oacy():
service = Service(r"C:\Users\ST\Downloads\chromedriver-win64\chromedriver-win64\chromedriver.exe")
driver = webdriver.Chrome(service=service)
driver.maximize_window()

try:
driver.get("https://infopost.enbridge.com/infopost/AGHome.asp?pipe=AG")

wait = WebDriverWait(driver, 15)
capacity_button  = wait.until(EC.element_to_be_clickable((By.LINK_TEXT, "Capacity")))
capacity_button.click()

oacy_button  = wait.until(EC.element_to_be_clickable((By.LINK_TEXT, "Operationally Available")))
oacy_button.click()

yesterday = date.today() - timedelta(days=1)
date_format = f"{yesterday.month}/{yesterday.day}/{yesterday.year}"
yesterday = str(yesterday)

driver.switch_to.default_content()
mainframe = wait.until(EC.frame_to_be_available_and_switch_to_it((By.NAME, "current-content")))

date_input = wait.until(EC.presence_of_element_located((By.ID, "ctl00_MainContent_ctl01_oaDefault_ucDate_rdpDate_dateInput")))
date_input.click()
date_input.clear()
date_input.send_keys(date_format, Keys.ARROW_DOWN, Keys.ENTER)
date_input.send_keys("\n")
time.sleep(5)

cycle = Select(driver.find_element(By.ID, "ddlSelector"))

for option in cycle.options:
if yesterday in option.text:
option.click()
break
#select = Select(cycle)
#submit_button = wait.until(EC.element_to_be_clickable((By.ID, "ctl00_MainContent_ctl01_oaDefault_btnRetrieve")))
#submit_button.click()

pdf = wait.until(EC.element_to_be_clickable((By.LINK_TEXT, "Viewable and Printable Format")))
pdf_link = pdf.get_attribute('href')
pdf.click()
time.sleep(4)

except TimeoutException as e:
print("Algonquin pipeline: Timeout! Could not find element:", e)
except NoSuchElementException as e:
print("Algonquin pipeline: No such element:", e)
except ElementClickInterceptedException as e:
print("Algonquin pipeline: Click intercepted:", e)
except Exception as e:
print("Algonquin pipeline: Unexpected error:", type(e).__name__, e)
finally:
driver.quit()

if __name__ == "__main__":
algonquin_oacy()