Как использовать Chrome без использования Chrome в Chrome 60 в Windows 10?

Я смотрел следующую статью о Chrome Headless:
https://developers.google.com/web/updates/2017/04/headless-chrome

Я только что обновил Chrome в Windows 10 до версии 60, но когда я запускаю одну из следующих команд из командной строки, ничего не происходит:

chrome --headless --disable-gpu --dump-dom https://www.google.com/
chrome --headless --disable-gpu --print-to-pdf https://www.google.com/

И я запускаю все эти команды из следующего пути (путь установки по умолчанию для Chrome в Windows):

C:\Program Files (x86)\Google\Chrome\Application\

Когда я запускаю команды, что-то, кажется, обрабатывается на секунду, но я ничего не вижу. Что я делаю неправильно?
Спасибо.


Edit:

Как отметил Марк Райкок, если вы добавите команду --enable-logging в команду --dump-dom, она будет работать. Кроме того, команда --print-to-pdf работает также в Chrome 61.0.3163.79, но вам, вероятно, придется указать другой путь для выходного файла, чтобы иметь необходимые разрешения для его сохранения.

Таким образом, для меня работали следующие две команды:

"C:\Program Files (x86)\Google\Chrome\Application\chrome" --headless --disable-gpu --enable-logging --dump-dom https://www.google.com/
"C:\Program Files (x86)\Google\Chrome\Application\chrome" --headless --disable-gpu --print-to-pdf=D:\output.pdf https://www.google.com/

Я предполагаю, что следующий шаг состоит в том, чтобы пройти через сбрасываемый DOM, такой как PhantomJS, с помощью DOM-селекторов и еще чего-то, но я полагаю, что отдельный вопрос.

Ответы

Ответ 1

С Chrome 61.0.3163.79, если я добавлю --enable-logging, тогда --dump-dom выдает вывод:

> "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --enable-logging --headless --disable-gpu --dump-dom https://www.chromestatus.com
<body class="loading" data-path="/features">
<app-drawer-layout fullbleed="">
...
</script>
</body>

Если вы хотите программно управлять безголовым Chrome, вот один из способов сделать это с Python3 и Selenium:

В окне cmd администратора установите Selenium для Python:

C:\Users\Mark> pip install -U selenium

Download ChromeDriver v2.32 и извлеките его. Я помещаю chromedriver.exe в C:\Users\Mark, где я помещаю этот headless.py Python script:

from selenium import webdriver

options = webdriver.ChromeOptions()
options.add_argument("headless")  # remove this line if you want to see the browser popup
driver = webdriver.Chrome(chrome_options = options)
driver.get('https://www.google.com/')
print(driver.page_source)
driver.quit()  # don't miss this, or chromedriver.exe will keep running!

Запустите его в обычном окне cmd:

C:\Users\Mark> python headless.py
<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml" ...
...  lots and lots of stuff here ...
...</body></html>

Ответ 2

Вы должны быть хорошими. Проверьте в каталоге версии Chrome

C:\Program Files (x86)\Google\Chrome\Application\60.0.3112.78

Для команды

chrome --headless --disable-gpu --print-to-pdf https://www.google.com/

C:\Program Files (x86)\Google\Chrome\Application\60.0.3112.78\output.pdf 

Изменить: Все еще выполняйте команды, в которых выполняется исполняемый файл chrome, в этом случае

 C:\Program Files (x86)\Google\Chrome\Application\

Ответ 3

Если вы хотите уклониться от проблемы в целом и просто использовать какую-то услугу для выполнения вашей работы, я автор/основатель browserless, который пытается справиться с работающим безголовым Chrome в сервис-стиле. Помимо этого, довольно сложно идти в ногу с изменениями и убедиться, что все соответствующие пакеты и ресурсы установлены для запуска Chrome, но определенно выполнимы.