【问题标题】:How to hide Chrome Driver in python?如何在 python 中隐藏 Chrome 驱动程序?
【发布时间】:2017-02-27 02:42:00
【问题描述】:

虽然我知道有人问过这个问题,但我没有找到合适的答案,所以我又问了一次。我使用 PhantomJS 抓取网站,但在 Mac 上非常慢,所以我想使用 Chrome,但 Chrome 显示浏览器很糟糕,我可以隐藏它吗?我尝试了如下代码,仍然显示一个小的浏览器窗口..

browser = webdriver.Chrome()
browser.set_window_position(0, 0)
browser.set_window_size(0, 0)

【问题讨论】:

  • 这听起来像XY problem。你想达到什么目的? PhantomJS 和 Selenium 是用于抓取网站的糟糕工具。
  • 我想隐藏Chrome浏览器,可以吗?
  • 我的观点是,如果您的目标实际上是抓取网站,那么启动一个不可见的 Chrome 窗口是一种不好的方法。忘记隐藏浏览器窗口,忘记 Chrome 和 Selenium;你想完成什么
  • 你想告诉我Chrome不是无头浏览器吗?
  • @Chris 您使用 selenium/phantomjs 进行抓取的原因有很多,我同意这不是首选,但有时是唯一且最可靠的方法……您可以在以下位置看到多个帖子/讨论这个问题...

标签: python selenium-chromedriver headless-browser


【解决方案1】:

Google 在 2017 年 4 月宣布您可以在无头模式下运行。

https://developers.google.com/web/updates/2017/04/headless-chrome

chrome_options = Options()
# Chrome v75 and lower:
# chrome_options.add_argument("--headless") 
# Chrome v 76 and above (v76 released July 30th 2019):
chrome_options.headless = True

chrome_options.binary_location = '/Applications/Google Chrome   Canary.app/Contents/MacOS/Google Chrome Canary'  
driver = webdriver.Chrome(executable_path=os.path.abspath(“chromedriver"),   chrome_options=chrome_options)

您应该确保的几件事

  • 如果使用 Mac/Linux,则 chrome 版本应至少为 59
  • 如果使用 Windows,则 chrome 版本应至少为 60
  • 同时使用最新的 chromedriver 以确保没有兼容性问题

【讨论】:

  • 在 76 版中,这现在是一个属性:chrome_options.headless = True
  • 更好:这将在必要时自动禁用 GPU。
【解决方案2】:

参考号:how-could-i-start-a-selenium-browserlike-firefox-minimized

您可以将浏览器窗口移动到监视器上,如下所示:

driver.set_window_position(-10000,0)

【讨论】:

  • 好吧,我是通过 driver.set_window_position(-10000, 0) 得到的。非常感谢!
  • chrome打开标签页时,在mac上仍然显示在最左边
【解决方案3】:

试试这个!

https://beomi.github.io/2017/09/28/HowToMakeWebCrawler-Headless-Chrome/

options = webdriver.ChromeOptions()
options.add_argument('headless')
options.add_argument('window-size=1920x1080')
options.add_argument("disable-gpu")
# OR options.add_argument("--disable-gpu")

driver = webdriver.Chrome('chromedriver', chrome_options=options)

【讨论】:

    【解决方案4】:

    我认为它会起作用。

    from selenium import webdriver
    
    chrome_options = webdriver.ChromeOptions()
    chrome_options.add_argument('headless')
    chrome_options.add_argument('window-size=1920x1080')
    chrome_options.add_argument("disable-gpu")
    driver = webdriver.Chrome('chromedriver', chrome_options=chrome_options)
    
    driver.get('http://google.com')
    print(driver.title)
    driver.implicitly_wait(3)
    driver.get_screenshot_as_file('googleHomePage.png')
    
    driver.quit()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-21
      • 2016-10-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多