--headless не поддерживается в chrome webdriver для Селена Питона - PullRequest
0 голосов
/ 04 января 2019

Я бы хотел, чтобы selenium запускал безголовый экземпляр Google Chrome для извлечения данных с определенных веб-сайтов без дополнительных затрат на пользовательский интерфейс.Я скачал исполняемый файл chromedriver из здесь и скопировал его в мой текущий каталог скриптов.Похоже, что драйвер отлично работает с селеном и может автоматически выполнять поиск, однако я не могу найти вариант без головы.Большинство онлайн примеров использования selenium с хромом без головы идут примерно так:

import os  
from selenium import webdriver  
from selenium.webdriver.common.keys import Keys  
from selenium.webdriver.chrome.options import Options  

chrome_options = Options()  
chrome_options.add_argument("--headless")  
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)  
driver.get("http://www.duo.com")` 

Однако, когда я проверяю возможные аргументы для селенового веб-драйвера с помощью команды chromedriver -h, я получаю следующее:

D:\Jobs\scripts>chromedriver -h
Usage: chromedriver [OPTIONS]

Options
  --port=PORT                     port to listen on
  --adb-port=PORT                 adb server port
  --log-path=FILE                 write server log to file instead of stderr, increases log level to INFO
  --log-level=LEVEL               set log level: ALL, DEBUG, INFO, WARNING, SEVERE, OFF
  --verbose                       log verbosely (equivalent to --log-level=ALL)
  --silent                        log nothing (equivalent to --log-level=OFF)
  --append-log                    append log file instead of rewriting
  --replayable                    (experimental) log verbosely and don't truncate long strings so that the log can be replayed.
  --version                       print the version number and exit
  --url-base                      base URL path prefix for commands, e.g. wd/url
  --whitelisted-ips               comma-separated whitelist of remote IP addresses which are allowed to connect to ChromeDriver

Опция --headless недоступна.

Может ли кто-нибудь дать разъяснения по этому поводу?Позволяет ли хромедрайвер, полученный по ссылке выше, просматривать без заголовка?

Спасибо

Ответы [ 2 ]

0 голосов
/ 04 января 2019

--headless это не аргумент для chromedriver, но Chrome, вы можете увидеть больше аргументов или переключателей командной строки для chrome здесь

0 голосов
/ 04 января 2019

--headless не аргумент для chromedriver, а для Chrome.--headless Запуск chrome в режиме без головы, т. Е. Без пользовательского интерфейса или отображения серверных зависимостей.ChromeDriver - это отдельный исполняемый файл, который WebDriver использует для управления Chrome, а Webdriver представляет собой набор привязок к конкретному языку для управления браузером.

Я могу работать в автономном режиме с этим набором параметров.Я надеюсь, что это поможет:

from bs4 import BeautifulSoup, NavigableString
from selenium.webdriver.chrome.options import Options
from selenium import webdriver
import requests
import re  
options = Options()
options.add_argument('--headless')
options.add_argument('--no-sandbox')
options.add_argument('--disable-gpu')
browser = webdriver.Chrome(chrome_options=options)
browser.implicitly_wait(20)
...