Spaces:
Runtime error
Runtime error
| #!/usr/bin/env python3 | |
| # | |
| import os | |
| import math | |
| import socket | |
| from selenium import webdriver | |
| from selenium.webdriver.common.keys import Keys | |
| from selenium.webdriver.common.by import By | |
| from common import selectors | |
| from entity import Entity | |
| from common import defaults,mkdir | |
| from imtool import coord_dict_to_point | |
| options = webdriver.FirefoxOptions() | |
| options.add_argument("--headless") | |
| options.add_argument("--window-size=1920x8000") | |
| options.set_preference('WebglAllowWindowsNativeGl', True) | |
| host = os.getenv('GECKO_HOST') or 'localhost' | |
| port = os.getenv('GECKO_PORT') or '4444' | |
| ip = socket.gethostbyname(host) | |
| print(f'host: {host}->{ip}, port: {port}') | |
| driver = webdriver.Remote( | |
| options=options, | |
| desired_capabilities=webdriver.DesiredCapabilities.FIREFOX, | |
| command_executor=f"http://{ip}:{port}" | |
| ) | |
| def sc_entity(e: Entity): | |
| print(f'screenshoting: {e}') | |
| mkdir.make_dirs([ | |
| defaults.IMAGES_PATH, | |
| defaults.LABELS_PATH, | |
| ]) | |
| driver.implicitly_wait(10) | |
| driver.get(e.url) | |
| #driver.save_screenshot(f"{defaults.DATA_PATH}/{e.bco}.png") | |
| p = f"{defaults.IMAGES_PATH}/{e.bco}.full.png" | |
| html = driver.find_element(By.TAG_NAME, 'html') | |
| # driver.save_screenshot(p) | |
| html.screenshot(p) | |
| print(f'wrote: {p}') | |
| logos = driver.find_elements(By.CSS_SELECTOR, selectors.img_logo) or [] | |
| logos.extend(driver.find_elements(By.CSS_SELECTOR, selectors.id_logo) or []) | |
| logos.extend(driver.find_elements(By.CSS_SELECTOR, selectors.cls_logo) or []) | |
| with open(f"{defaults.LABELS_PATH}/{e.bco}.full.txt", 'w') as f: | |
| for i in logos: | |
| f.write(f"{e.id} {coord_dict_to_point(i.rect)}\n") | |
| if __name__ == '__main__': | |
| sc_entity(Entity.from_dict({'url': 'http://www.bbva.com.ar', 'bco': 'debug'})) | |