def get_top_gainers(self, filter_num=20): """ Get the stop gainers for the previous day :param filter_num: number of stocks to filter :return: a list of stocks """ str = "https://finviz.com/screener.ashx?v=141&s=ta_topgainers&o=-change" stock_list = Screener.init_from_url(str) stock_gainers = [] for stock in stock_list[0:filter_num]: stock_gainers.append(stock['Ticker']) return stock_gainers
from finviz.screener import Screener import finviz.main_func urls = ["https://finviz.com/screener.ashx"] tickers = [] last_dividend = 0.0 max_div = 0.0 for url in urls: stock_list = Screener.init_from_url(url, rows=8000) for pos in range(0, stock_list.__len__()): try: details = stock_list.get(pos) ticker = details["Ticker"] stock = finviz.get_stock(ticker) if max_div < float(stock["Dividend"]): max_div = float(stock["Dividend"]) # print("pos ", pos, " ticker ", ticker, " div ", stock["Dividend"], " max div ", max_div) val = float(stock["Price"]) / float(stock["Dividend"]) if stock not in tickers and last_dividend < float( stock["Dividend"]): # print("add ", ticker) last_dividend = float(stock["Dividend"]) stock["Ticker"] = ticker tickers.append(stock) except: pass