Создание безголового экземпляра Chrome в Python

Этот вопрос описывает мой вывод после изучения доступных вариантов создания безгласного экземпляра Chrome в Python и просит подтверждения или ресурсов, которые описывают «лучший способ».

Из того, что я видел, кажется, что самый быстрый способ начать работу с безгласным экземпляром Chrome в приложении Python – использовать CEF ( http://code.google.com/p/chromiumembedded/ ) с CEFPython ( http: //code.google.com/p/cefpython/ ). CEFPython кажется преждевременным, поэтому использование его, скорее всего, означает дальнейшую настройку, прежде чем я смогу загрузить безглавой экземпляр Chrome, который загружает веб-страницы (и необходимые файлы), разрешает завершенную DOM, а затем позволяет запускать произвольное JS против него с Python.

Я пропустил какие-либо другие проекты, которые более зрелые или облегчат мне это?

5 Solutions collect form web for “Создание безголового экземпляра Chrome в Python”

По какой причине вы не рассматривали Selenium с драйвером Chrome?

http://code.google.com/p/selenium/wiki/ChromeDriver

http://code.google.com/p/selenium/wiki/PythonBindings

Хотя я являюсь автором CasperJS , я приглашаю вас проверить Ghost.py , веб-клиент webkit, написанный на Python .

Хотя он сильно вдохновлен CasperJS, он не основан на PhantomJS, однако он все еще использует привязки PyQt и Webkit.

Этот вопрос сейчас 5 лет, и в то время было большой проблемой запустить безгласный хром с использованием python, но хорошие новости:

Начиная с версии 59, выпущенной в июне 2017 года, Chrome поставляется с безголовым драйвером , что означает, что мы можем использовать его в неграфической серверной среде и запускать тесты без визуального отображения страниц и т. Д., Что экономит много времени и памяти для тестирования или скребков , Установка Selenium для этого очень проста:

(Я предполагаю, что вы установили драйвер selenium и chrome):

from selenium import webdriver #set a headless browser options = webdriver.ChromeOptions() options.add_argument('headless') browser = webdriver.Chrome(chrome_options=options) 

и теперь вы хром будете бегать без головы, если вы выберете опции из последней строки, он покажет вам браузер.

casperjs – безгласный webkit, но он не даст вам привязки python, о которых я знаю; он кажется ориентированным на командную строку, но это не значит, что вы не могли запустить его из python таким образом, чтобы он удовлетворял вашим потребностям. Когда вы запускаете casperjs, вы предоставляете путь к javascript, который хотите выполнить; поэтому вам нужно будет испустить это из Python.

Но все это в стороне, я поднимаю casperjs, потому что это, кажется, удовлетворяет легким, безголовым требованием очень красиво.

Я использую это, чтобы получить драйвер:

 def get_browser(storage_dir, headless=False): """ Get the browser (a "driver"). Parameters ---------- storage_dir : str headless : bool Results ------- browser : selenium webdriver object """ # find the path with 'which chromedriver' path_to_chromedriver = '/usr/local/bin/chromedriver' from selenium.webdriver.chrome.options import Options chrome_options = Options() if headless: chrome_options.add_argument("--headless") chrome_options.add_experimental_option('prefs', { "plugins.plugins_list": [{"enabled": False, "name": "Chrome PDF Viewer"}], "download": { "prompt_for_download": False, "default_directory": storage_dir, "directory_upgrade": False, "open_pdf_in_system_reader": False } }) browser = webdriver.Chrome(path_to_chromedriver, chrome_options=chrome_options) return browser 

Переключив параметр headless вы можете смотреть его или нет.

  • как открыть хром в режиме инкогнито от Python
  • Загрузка с хромированным безголовым и селеном
  • как установить прокси-сервер для chrome в python webdriver
  • Работает только одна программа python (например, Firefox)?
  • Как я могу установить прокси с аутентификацией в selenium chrome веб-драйвер, используя python
  • Браузеры закрывают сокет до того, как ответ полностью загружен
  • Запуск привязок python для Selenium WebDriver в хроме
  • Селен неожиданно имеет проблемы
  •  
    Interesting Posts for Van-Lav

    Как добавить новое значение в список без использования 'append ()', а затем сохранить значение во вновь созданном списке?

    Изображения Keras CNN и размер ядра не совпадают даже после преобразования изображения в соответствии с

    Невозможно десериализовать PyMongo ObjectId от JSON

    Brew Install Python завершается сбоем из-за ссылки на ссылку gdbm link

    Как запустить графическое приложение wxPython в Sublime Text 2

    Как удалить фигурные скобки, апострофы и квадратные скобки из словарей в кадре данных Pandas (Python)

    Django и параллельная обработка:

    Python – вычисление второго столбца из первого в файле

    Я хочу использовать сочетания клавиш в моем коде в PyQt4

    Даже цифры список?

    Существует ли прерывистый класс диапазона для Python?

    Каковы методы класса итерации next () и __next __ () for, и в чем разница?

    MySQL INSERT … ON DUPLICATE KEY UPDATE с django 1.4 для объемной вставки

    Как избежать одиночных кавычек в Python на сервере, которые будут использоваться в Javascript на клиенте

    ImportError не может импортировать имя BytesIO при импорте caffe на ubuntu

    Python - лучший язык программирования в мире.