Jump to content

Безголовый браузер

Безголовый браузер это веб-браузер без графического пользовательского интерфейса .

Безголовые браузеры обеспечивают автоматическое управление веб-страницей в среде, аналогичной популярным веб-браузерам, но выполняются через интерфейс командной строки или с использованием сетевого взаимодействия. Они особенно полезны для тестирования веб-страниц, поскольку способны отображать и понимать HTML так же, как это делает браузер, включая элементы стиля, такие как макет страницы, цвет, выбор шрифта и выполнение JavaScript и Ajax , которые обычно недоступны при использовании других методы тестирования. [1]

Начиная с версии 59 Google Chrome [2] [3] и версия 56 [4] из Firefox , [5] есть встроенная поддержка удаленного управления браузером. Это сделало предыдущие разработки устаревшими, особенно PhantomJS . [6]

Варианты использования

[ редактировать ]

Основные варианты использования безголовых браузеров:

Другое использование

[ редактировать ]

Безголовые браузеры также полезны для парсинга веб-страниц . В 2009 году Google заявила, что использование headless-браузера может помочь их поисковой системе индексировать контент с веб-сайтов, использующих Ajax. [7]

Безголовые браузеры также использовались по-разному:

Однако исследование браузерного трафика в 2018 году не выявило предпочтения злоумышленниками автономных браузеров. [3] Нет никаких признаков того, что безголовые браузеры используются чаще, чем обычные браузеры, для вредоносных целей, таких как DDoS-атаки, SQL-инъекции или атаки с использованием межсайтовых сценариев .

Использование

[ редактировать ]

Поскольку несколько основных браузеров изначально поддерживают автономный режим через API , существует некоторое программное обеспечение для автоматизации браузера через унифицированный интерфейс. К ним относятся:

Автоматизация тестирования

[ редактировать ]

Некоторые программы и платформы для автоматизации тестирования включают в себя безголовые браузеры как часть своих средств тестирования. [3]

  • Capybara использует автономный просмотр через WebKit или Headless Chrome, чтобы имитировать поведение пользователя в своих протоколах тестирования. [15]
  • По умолчанию Jasmine использует Selenium, но для запуска тестов браузера может использовать WebKit или Headless Chrome. [16]
  • Cypress — фреймворк для фронтенд-тестирования.
  • QF-Test — программный инструмент для автоматического тестирования программ через графический интерфейс пользователя, где для тестирования также можно использовать headless-браузер.

Альтернативы

[ редактировать ]

Другой подход — использовать программное обеспечение, предоставляющее API-интерфейсы браузера. Например, Deno предоставляет API-интерфейсы браузера как часть своего дизайна. Для Node.js — jsdom [17] является наиболее полным поставщиком. Хотя большинство из них способны поддерживать общие функции браузера (парсинг HTML, cookie , XHR , некоторый JavaScript и т. д.), они не отображают DOM файлы и имеют ограниченную поддержку событий DOM . Обычно они работают быстрее, чем полноценные браузеры, но не могут правильно интерпретировать многие популярные веб-сайты. [18] [19] [20]

Другой — HtmlUnit , безголовый браузер, написанный на Java. HtmlUnit использует движок Rhino для обеспечения поддержки JavaScript и Ajax, а также возможности частичного рендеринга. [21] [22]

Список безголовых браузеров

[ редактировать ]

Это различное программное обеспечение, предоставляющее автономные API-интерфейсы браузера.

  • Splash — это автономный веб-браузер, написанный на Python с использованием механизма компоновки WebKit через Qt . Он имеет HTTP API, поддержку сценариев Lua и встроенную IDE на основе IPython (Jupyter). Разработка началась в ScrapingHub в 2013 году; он частично финансируется DARPA . [23] [24]
  • — это симулированная среда браузера для Node.js. Zombie.js [25]
  • SimpleBrowser — это автономный веб-браузер, написанный на C# и поддерживающий .NET Standard 2.0. [26]
  • DotNetBrowser — это собственная библиотека на основе .NET Chromium, которая обеспечивает режим внеэкранного рендеринга и может использоваться без встраивания или отображения окон. [27] [28]

Еще одной отмеченной ранее разработкой была envjs в 2008 году от Джона Резига , которая представляла собой симулированную среду браузера, написанную на JavaScript для движка Rhino . [29]

См. также

[ редактировать ]
  1. ^ «Что такое безголовый браузер?» . arhg.net . 7 октября 2009 г.
  2. ^ «Начало работы с Headless Chrome» . Developers.google.com . 27 апреля 2017 г.
  3. ^ Jump up to: а б с Бекерман, Дима (28.11.2018). «Безголовый Chrome: он нравится DevOps, хакерам тоже, и вот почему | Imperva» . Блог . Проверено 22 февраля 2021 г.
  4. ^ «Примечания к выпуску Firefox 56» . http://developer.mozilla.org . 26 февраля 2023 г.
  5. ^ «Безголовый режим — поддержка браузера» . http://developer.mozilla.org . Архивировано из оригинала 3 июня 2018 г. Проверено 31 августа 2017 г.
  6. ^ «Быстрый старт» . phantomjs.org .
  7. ^ Мюллер, Джон (7 октября 2009 г.). «Официальный блог Google для веб-мастеров: предложение по обеспечению возможности сканирования AJAX» . Официальный блог Центра веб-мастеров Google .
  8. ^ Роулингс, Мэтт (20 ноября 2013 г.). «Ботнет без головы браузера использовался в 150-часовой DDoS-атаке» . Сообщество Бизнес 2 .
  9. ^ Мелло-младший, Джон П. (25 марта 2014 г.). «Безголовый веб-трафик угрожает интернет-экономике» . ecommercetimes.com .
  10. ^ Рэйвуд, Дэн (01 апреля 2014 г.). «Безголовые браузеры: законное программное обеспечение, позволяющее атаковать» . ИТПроПортал .
  11. ^ Мюллер, Нил. «Вброс учетных данных» . owasp.org .
  12. ^ Шет, Химаншу (17 ноября 2020 г.). «Selenium 4 теперь совместим с W3C: все, что вам нужно знать» .
  13. ^ «GitHub — Драматург» . Гитхаб . Проверено 11 апреля 2021 г.
  14. ^ «Гитхаб — Кукловод» . Гитхаб . Проверено 11 апреля 2021 г.
  15. ^ Сильва, Франциско (29 мая 2019 г.). «От capybara-webkit до Headless Chrome и ChromeDriver» . Блог | Воображаемое облако . Проверено 22 февраля 2021 г.
  16. ^ Бинц, Джон. "jasmine-headless-webkit — Самый быстрый способ запустить спецификации Jasmine!" . johnbintz.github.io . Проверено 22 февраля 2021 г.
  17. ^ «JSDOM на GitHub — притворяется визуальным браузером» . Гитхаб . Проверено 18 апреля 2021 г.
  18. ^ «ассаф/зомби» . Гитхаб .
  19. ^ или глаза? Каковы симптомы и методы лечения в больнице?» .. www.envjs.com из оригинала 23 февраля 2015 . Архивировано г «Может ли герпес передаваться через рот
  20. ^ «JavaScriptMVC — EnvJS» . javascriptmvc.com . Архивировано из оригинала 23 мая 2015 г. Проверено 13 марта 2015 г.
  21. ^ Майк Боулер. «HtmlUnit – Добро пожаловать в HtmlUnit» . sourceforge.net .
  22. ^ «Платформа (API Vaadin 7.3.4)» . vaadin.com . 6 ноября 2014 г.
  23. ^ «скребок/всплеск» . Гитхаб . 20 декабря 2021 г.
  24. ^ «DARPA — Открытый каталог» . Архивировано из оригинала 28 мая 2015 г. Проверено 28 мая 2015 г.
  25. ^ «Зомби» . labnotes.org .
  26. ^ SimpleBrowserDotNet/SimpleBrowser , SimpleBrowserDotNet, 10 февраля 2021 г. , получено 22 февраля 2021 г.
  27. ^ Примеры DotNetBrowser , TeamDev, 12 марта 2021 г. , получено 12 марта 2021 г.
  28. ^ «ДотНетБраузер» . TeamDev. 05.05.2021.
  29. ^ Резиг, Джон (12 октября 2008 г.). «env-js: среда браузера на чистом JavaScript» — через GitHub.
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 9d73bc14b48e08ce382e56f62a68606b__1721236260
URL1:https://arc.ask3.ru/arc/aa/9d/6b/9d73bc14b48e08ce382e56f62a68606b.html
Заголовок, (Title) документа по адресу, URL1:
Headless browser - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)