Как скрыть драйвер Chrome в python?

Хотя я знал, что люди задавали этот вопрос, но я не нашел подходящего ответа, поэтому задал еще раз. Я использовал PhantomJS для очистки веб-сайта, но он очень медленный на Mac, поэтому я хочу использовать Chrome, но Chrome показывает плохой браузер, могу ли я это скрыть? Я попробовал код, как показано ниже, который все еще показывает небольшое окно браузера.

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

person mikezang    schedule 27.02.2017    source источник
comment
Похоже на проблему XY. Что вы пытаетесь достичь? PhantomJS и Selenium — плохие инструменты для парсинга веб-сайтов.   -  person Chris    schedule 27.02.2017
comment
Я хочу скрыть браузер Chrome, это возможно?   -  person mikezang    schedule 27.02.2017
comment
Я хочу сказать, что если ваша цель на самом деле состоит в том, чтобы очистить веб-сайты, запуск невидимого окна Chrome — плохой способ приблизиться к ней. Забудьте о том, чтобы скрыть окно браузера, забудьте о Chrome и Selenium; чего вы пытаетесь достичь?   -  person Chris    schedule 27.02.2017
comment
Вы хотите сказать мне, что Chrome не является безголовым браузером?   -  person mikezang    schedule 27.02.2017
comment
@Chris Есть много причин, по которым вы бы использовали selenium / phantomjs, я бы согласился, что это не первый выбор, но иногда единственный и самый надежный способ ... вы можете увидеть несколько сообщений / обсуждений по этому вопросу ...   -  person FancyDolphin    schedule 27.02.2017


Ответы (4)


ССЫЛКА: how-could-i-start-a-selenium- браузероподобный-firefox-минимизированный

Вы можете перемещать окно браузера по монитору, например:

driver.set_window_position(-10000,0)

person Beomi    schedule 27.02.2017
comment
ну, я получил это через driver.set_window_position(-10000, 0). большое спасибо! - person mikezang; 27.02.2017
comment
Когда хром открывает вкладку, она по-прежнему отображается на Mac в крайнем левом углу - person whackamadoodle3000; 10.08.2017

Google объявил в 4/2017, что вы можете работать без головы.

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, чтобы убедиться, что у вас нет проблем с совместимостью.
person sealabr    schedule 25.05.2018
comment
В версии 76 это теперь свойство: chrome_options.headless = True - person Aaron Digulla; 13.08.2019
comment
Еще лучше: это автоматически отключит графический процессор, когда это необходимо. - person Aaron Digulla; 13.08.2019

Попробуй это!

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)
person Henry Lee    schedule 06.01.2019

Я думаю, это сработает.

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()
person Jawad    schedule 07.06.2021