Как использовать 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, но определенно выполнимы.