Skip to content

Instantly share code, notes, and snippets.

@JeffreyKozik
Created January 28, 2022 22:19
Show Gist options
  • Save JeffreyKozik/7535e15d618ed5331a70c8e6508fa2b4 to your computer and use it in GitHub Desktop.
Save JeffreyKozik/7535e15d618ed5331a70c8e6508fa2b4 to your computer and use it in GitHub Desktop.
# selenium dependencies
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
# excel dependencies
import openpyxl
from pathlib import Path
from os.path import exists
# gui dependencies
import tkinter as tk
# screenshot dependencies
from PIL import Image
from Screenshot import Screenshot_Clipping
# https://realpython.com/python-gui-tkinter/
window = tk.Tk()
file_address_label = tk.Label(text="Excel File")
file_address_entry = tk.Entry()
file_address_label.pack()
file_address_entry.pack()
starting_row_label = tk.Label(text="Staring Row")
starting_row_entry = tk.Entry()
starting_row_label.pack()
starting_row_entry.pack()
ending_row_label = tk.Label(text="Ending Row")
ending_row_entry = tk.Entry()
ending_row_label.pack()
ending_row_entry.pack()
column_label = tk.Label(text="Column")
column_entry = tk.Entry()
column_label.pack()
column_entry.pack()
def handle_click(event):
xlsx_file = file_address_entry.get()
starting_row = starting_row_entry.get()
print(starting_row)
ending_row = ending_row_entry.get()
column = column_entry.get()
defaults = []
if (exists("trading_view_automation_defaults.txt")):
with open('trading_view_automation_defaults.txt') as f:
defaults = f.readlines()
i = 0
while (i < len(defaults)):
print('in while loop')
defaults[i] = defaults[i][:-1]
print(defaults[i])
i+=1
def set_to_default(variable, num):
print(str(variable))
if (str(variable) == ""):
return defaults[num]
else:
return variable
xlsx_file = set_to_default(xlsx_file, 0)
starting_row = set_to_default(starting_row, 1)
print(starting_row)
ending_row = set_to_default(ending_row, 2)
column = set_to_default(column, 3)
print(starting_row)
starting_row = int(starting_row)
ending_row = int(ending_row)
f = open("trading_view_automation_defaults.txt", "w", encoding='utf-8')
f.write(xlsx_file + "\n")
f.write(str(starting_row) + "\n")
f.write(str(ending_row) + "\n")
f.write(column + "\n")
f.close()
# https://www.marsja.se/your-guide-to-reading-excel-xlsx-files-in-python/
workbook_object = openpyxl.load_workbook(xlsx_file)
sheet = workbook_object.active
current_row = starting_row
stocks = []
while current_row <= ending_row:
current_cell = column + str(current_row)
current_stock = sheet[current_cell].value
stocks.append(current_stock)
current_row += 1
url = "https://in.tradingview.com/chart/"
driver = webdriver.Chrome(ChromeDriverManager().install())
driver.get(url)
waiting_time = 1000
def search_stock(stock):
search_button = WebDriverWait(driver, waiting_time).until(
EC.element_to_be_clickable((By.ID, "header-toolbar-symbol-search")))
search_button.click()
search_input = WebDriverWait(driver, waiting_time).until(
EC.element_to_be_clickable((By.XPATH, '//input[@data-role="search"]')))
search_input.send_keys(stock)
search_input.send_keys(Keys.ENTER)
# https://www.browserstack.com/guide/take-screenshot-with-selenium-python
driver.save_screenshot(stock + ".png")
for stock in stocks:
search_stock(stock)
driver.close()
quit()
button = tk.Button(text="Screenshot Stocks", bg="black", fg="white")
button.bind("<Button-1>", handle_click)
button.pack()
window.mainloop()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment