def main(): parser = argparse.ArgumentParser(description='Selenium proxy - O_o') parser.add_argument('--batch', nargs=1, required=True, help='name of batch to start') parser.add_argument('--vdisplay', nargs='?', help='use virtual display') args = parser.parse_args() if args.vdisplay: vdisplay = Xvfb(width=1280, height=740, colordepth=16) vdisplay.start() batch_name = args.batch[0] settings = get_batch(batch_name) if settings == None: print('Invalid name batch') return i = 0 while (True): i = i + 1 if DEBUG_MODE: logging.info('Iterration: {0}'.format(i)) i += 1 lang = settings['lang'] proxies = settings['proxy']['default'][lang] for proxy in proxies: device_name = None if settings['device']['type'] == 'mobile': device_name = choice(settings['device']['name']) driver = get_driver(proxy, lang, device_name) links = settings['links'] links_ban = links['ban'] if 'ban' in links else [] links_pop = links['pop'] if 'pop' in links else [] for link in links_ban: mc_interval = settings['maxclick']['interval_h'] mc_count = settings['maxclick']['count'] if is_capped(batch_name, mc_interval, mc_count): continue _link = link driver.get(link) link = driver.find_element_by_xpath('//a/img') link.click() track_click(batch_name, _link) if DEBUG_MODE: make_screenshot(driver) for link in links_pop: driver.get(link) if DEBUG_MODE: make_screenshot(driver) driver.quit() # need to sleep time.sleep(DRIVER_DELAY) if args.vdisplay: vdisplay.close()