Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!python3
- # bolero-etf-availability-scraper.py
- import os
- from selenium import webdriver
- from time import sleep
- from selenium.webdriver.firefox.firefox_binary import FirefoxBinary
- firefox_exec = os.getenv('FIREFOX_EXEC', default='C:\\Users\\Kids\\AppData\\Local\\Mozilla Firefox\\firefox.exe')
- geckodriver_exec = os.getenv('GECKODRIVER_EXEC', default='C:\\Users\\Kids\\Downloads\\geckodriver.exe')
- driver = webdriver.Firefox(executable_path=geckodriver_exec,
- firefox_binary=FirefoxBinary(firefox_exec))
- driver.get("https://platform.bolero.be")
- print("Please log in")
- input("Press any key to continue...")
- driver.get("https://platform.bolero.be/#/search/etf/stocks")
- sleep(3)
- search_button = driver.find_element_by_class_name("Security-Type-button--results")
- assert search_button is not None
- search_button.click()
- input("Press any key to start scraping these and the following asset listing pages...")
- fail_string_priips = "Dit effect kan niet aangekocht worden, want er is geen essentiële-informatiedocument beschikbaar."
- fail_string_notyet = "Dit effect is nog niet aanwezig in ons waardenbestand."
- try:
- page_nr = 1
- while True:
- sleep(4)
- buy_buttons = driver.find_elements_by_class_name("icon-traderapp-plus-minus--boxed")
- for btn in buy_buttons:
- btn.click()
- sleep(3)
- warnings = driver.find_elements_by_css_selector(".warning__header,.order__form__alert__header")
- warnings_text = "".join(w.text for w in warnings)
- status = ""
- if fail_string_notyet in warnings_text:
- status = "notyet"
- elif fail_string_priips in warnings_text:
- status = "priips"
- else:
- status = "yes"
- e_ticker = driver.find_element_by_css_selector("span[ta-show=\"summary.symbol\"]")
- assert e_ticker is not None
- ticker = e_ticker.text[1:-1]
- full_name = e_ticker.find_element_by_xpath("./..").text
- isin = driver.find_element_by_class_name("hotspot--mini__isin").text[6:]
- print(";".join((ticker, full_name, isin, status)))
- driver.back()
- sleep(2)
- next_btn = driver.find_element_by_css_selector(".pagination__link>.icon-traderapp-arrow--right")
- next_btn.click()
- page_nr += 1
- print(f"Page {page_nr}")
- except KeyboardInterrupt:
- # fail silently
- pass
- driver.close()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement