commit 5d4ce5a41c34a9607a46b2f1359d15b06f461278 Author: gabrielkheisa Date: Sat Oct 29 20:46:20 2022 +0700 first diff --git a/README.md b/README.md new file mode 100644 index 0000000..82e80d8 --- /dev/null +++ b/README.md @@ -0,0 +1,51 @@ +

Get market data from Yahoo Finance using Selenium

+

Requirements:

+ +

Example:

+ + diff --git a/script.py b/script.py new file mode 100644 index 0000000..783b7a9 --- /dev/null +++ b/script.py @@ -0,0 +1,51 @@ +import requests +from selenium import webdriver +from selenium.webdriver.chrome.options import Options +import time +from datetime import datetime +import base64 + +from selenium.webdriver.chrome.options import Options + +key = "API_KEY" + +while(1): + try: + now = datetime.now() + dt_string = now.strftime("%d-%m-%Y %H:%M:%S") + + options = Options() + options.add_argument('--headless') + options.add_argument('--disable-gpu') + browser = webdriver.Chrome(executable_path="/usr/bin/chromedriver", chrome_options=options) + + browser.delete_all_cookies() + browser.get("https://finance.yahoo.com/quote/IDR=X") + + time.sleep(5) + + + harga = browser.find_element_by_xpath("//*[@id=\"quote-header-info\"]/div[3]/div[1]/div/fin-streamer[1]").get_attribute('textContent') + price_change = browser.find_element_by_xpath("//*[@id=\"quote-header-info\"]/div[3]/div[1]/div/fin-streamer[2]/span").get_attribute('textContent') + change = browser.find_element_by_xpath("//*[@id=\"quote-header-info\"]/div[3]/div[1]/div/fin-streamer[3]/span").get_attribute('textContent') + last_update = browser.find_element_by_xpath("//*[@id=\"quote-market-notice\"]/span").get_attribute('textContent') + + + payload = harga + "=" + price_change + "=" + change + "=" + last_update + "=" + dt_string + " GMT+7" + "=" + key + + + print(payload) + + payload_encoded = base64.b64encode(bytes(payload, 'utf-8')) + + print(payload_encoded.decode('utf-8')) + + response = requests.get('https://api.gabrielkheisa.xyz/stocks/usdidr/index.php?q='+str(payload_encoded.decode('ascii'))) + + browser.quit() + print("Sleep for 1 hour") + time.sleep(60*60) + + except: + print("Error gak jelas, skip") + browser.quit() \ No newline at end of file