Мне не удалось найти набор данных с кодом ASX data1 = ['SPL', 'WBC', 'AAA']
на веб-странице в моем местоположении. Однако здесь приведен пример загрузки нескольких кодов ASX в последовательности.
Набор данных : data1 = ['SW1', 'AME', 'BGA','PPT','AMP']
Сохраните href
значение в списке, затем выполните итерацию списка и нажмите кнопку "Согласовано", чтобы загрузить файл PDF.
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium import webdriver
import time
chromeOptions=webdriver.ChromeOptions()
prefs = {"plugins.always_open_pdf_externally": True}
chromeOptions.add_experimental_option("prefs",prefs)
driver=webdriver.Chrome(executable_path=r"C:\Users\Harrison Pollock\Downloads\Python\chromedriver_win32\chromedriver.exe",chrome_options=chromeOptions)
driver.get("https://www.asx.com.au/asx/statistics/prevBusDayAnns.do")
data1 = ['SW1', 'AME', 'BGA','PPT','AMP']
pdfUrls=[]
for d in data1:
try:
pdfurl=driver.find_element_by_xpath("//table//tr//td[text()='{}']/following-sibling::td[3]/a[contains(.,'{}')]".format(d,"Change in substantial holding")).get_attribute("href")
pdfUrls.append(pdfurl)
except:
print("No ASX code found with Headline Change in substantial holding : " + d)
for pdfurl in pdfUrls:
driver.get(pdfurl)
WebDriverWait(driver, 15).until(EC.element_to_be_clickable((By.XPATH, "//input[@value='Agree and proceed']"))).click()
time.sleep(10) # pause to check download
print("Downloaded pdf file")