Headless Chromium

无头Chromium允许在无头/服务器环境中运行Chromium。预期的用例包括使用Chromium和Blink提供的所有现代Web平台功能,加载网页,提取元数据(例如DOM)以及从页面内容生成位图。

有两种使用无头铬的方法:

通过DevTools远程调试协议使用

  1. 使用--headless命令行标志启动普通的Chrome二进制文件(目前仅适用于Linux):

当前,您还需要使用--disable-gpu以避免因缺少Mesa库而导致错误。

  1. http://localhost:9222在另一个浏览器中导航至以打开DevTools界面,或使用Selenium之类的工具来驱动无头浏览器。

来自Node.js的用法

例如,可以使用chrome-remote-interface Node.js包提取页面的DOM,如下所示:

用作C ++库

可以将Headless Chromium构建为可嵌入C ++应用程序的库。否则,该方法类似于通过DevTools连接控制浏览器,但是它提供了更多的自定义点,例如,用于网络和mojo服务

无头示例是一个小示例应用程序,它演示了无头C ++ API的用法。它加载网页并输出结果DOM。要运行它,首先初始化一个无头构建配置:

然后构建示例:

构建完成后,可以使用以下命令运行示例:

无头外壳是一种更强大的无头应用程序。例如,它支持使用DevTools协议进行远程调试。为此,请使用指定调试端口的参数启动应用程序:

然后http://localhost:9222使用浏览器导航到。

嵌入器API

embedder API使开发人员可以将无头库集成到他们的应用程序中。该API为低级适应点(例如网络和运行循环)提供了默认实现。

主要的嵌入式API类是:

  • HeadlessBrowser::Options::Builder -定义嵌入选项,例如:
    • SetMessagePump-替换默认的基本消息泵。请参阅base::MessagePump
    • SetProxyServer -将HTTP / HTTPS代理服务器配置为用于访问网络。

客户端/ DevTools API

无头客户端API用于驱动浏览器并与加载的网页进行交互。它的主要类别是:

  • HeadlessBrowser -表示全局无头浏览器实例。
  • HeadlessWebContents -表示浏览器中的单个“标签”。
  • HeadlessDevToolsClient-提供用于检查和控制标签的C ++接口。API函数对应于DevTools命令。有关更多信息,请参见客户端API文档

资源和文件

邮件列表:headless-dev@chromium.org

错误跟踪:内部>无头

提交一个新的bugbit.ly/2pP6SBb

原文:https://chromium.googlesource.com/chromium/src/+/lkgr/headless/README.md

承接各种网站开发与修改、爬虫、数据采集分析、小程序等任务

Html+Css+JS+PHP+Nodejs+Python

专治网站各种不服

一起探讨,互相学习,共同进步!有事儿您说话。

This entry was posted in NodeJS, 无头浏览器 and tagged , by 织梦先生. Bookmark the permalink.