from selenium import webdriver from selenium.webdriver.firefox.options import Options from sys import argv, path as sys_path import time # Total total_loop = 1 def start_browser(url, headless=False): global total_loop delay_time = 5 web_driver_path = "./driver/geckodriver" target_url = url options = Options() options.headless = headless # Logs print() print(" *"+("*" * 60 )) print(" * Wattpad Floody") print(" * Headless:", headless) print(" * Target:", url) print(" * Delay:", delay_time, "secs") print(" *"+("*" * 60 )) # Init webdriver browser = webdriver.Firefox(options=options, executable_path=web_driver_path) try: # Loop forever while True: # Logs print(" * Tries:", total_loop) # Open browser browser.get(target_url) # Get scroll height last_height = browser.execute_script("return document.body.scrollHeight") while True: # Scroll down to bottom browser.execute_script("window.scrollTo(0, document.body.scrollHeight);") # Wait to load page time.sleep(0.5) # Calculate new scroll height and compare with last scroll height new_height = browser.execute_script("return document.body.scrollHeight") if new_height == last_height: break last_height = new_height # Delay time.sleep(delay_time) # Quit total_loop += 1 except KeyboardInterrupt: print(" * Exit...") except Exception as e: print(" * Error:", e) print(" * Restarting...") if target_url: start_browser(target_url) else: print(" * URL Gone, exiting...") # Start if len(argv) == 2: target_url = str(argv[1]) start_browser(target_url) elif len(argv) == 3: target_url = str(argv[1]) headless = str(argv[2]) == "--headless" start_browser(target_url, headless) else: print(" * Please provide URL to start...")