browser.py 1018 B

123456789101112131415161718192021222324252627282930313233
  1. #
  2. # Browser control
  3. #
  4. # This provides a headless google chrome image with correct useragent
  5. #
  6. from selenium import webdriver
  7. from useragent import USERAGENT
  8. WIDTH = 1280
  9. HEIGHT = 1024
  10. # USERAGENT = "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36"
  11. def get_driver(url=None):
  12. options = webdriver.ChromeOptions()
  13. options.add_argument("--no-sandbox")
  14. options.add_argument("--disable-gpu")
  15. options.add_argument("--disable-dev-shm-usage")
  16. # We must correct the user-agent because headless.
  17. options.add_argument(f"user-agent={USERAGENT}")
  18. options.add_argument(f"window-size={WIDTH},{HEIGHT}")
  19. # Headless changes UserAgent from Chrome to HeadlessChrome.
  20. options.add_argument("--headless=new")
  21. if url is None:
  22. url = "http://127.0.0.1:9515"
  23. driver = webdriver.Remote(command_executor=url, options=options)
  24. return driver
  25. def get_useragent(driver):
  26. return driver.execute_script("return navigator.userAgent;")