【chromium】CentOS7.x 上chromium的安装和使用

CentOS7.x 上安装chromium

yum -y install epel-release
yum -y install chromium

# yum info chromium

Loaded plugins: fastestmirror, langpacks, versionlock
Loading mirror speeds from cached hostfile
Excluding 1 update due to versionlock (use "yum versionlock status" to show it)
Installed Packages
Name        : chromium
Arch        : x86_64
Version     : 126.0.6478.114
Release     : 1.el7
Size        : 249 M
Repo        : installed
From repo   : epel
Summary     : A WebKit (Blink) powered web browser that Google doesn't want you to use
URL         : http://www.chromium.org/Home
License     : BSD-3-Clause AND LGPL-2.1-or-later AND Apache-2.0 AND IJG AND MIT AND GPL-2.0-or-later AND ISC AND OpenSSL AND (MPL-1.1 OR GPL-2.0-only OR
            : LGPL-2.0-only)
Description : Chromium is an open-source web browser, powered by WebKit (Blink).

对 yum info chromium 输出信息做一个解读

  1. Loaded plugins: fastestmirror, langpacks, versionlock

    • 这些是 yum 工具加载的插件。fastestmirror 插件会选择速度最快的镜像源,langpacks 处理语言包,versionlock 插件用于锁定某些软件包的版本。
  2. Loading mirror speeds from cached hostfile

    • yum 正在使用缓存中的镜像源信息来确定下载速度最快的镜像。
  3. Excluding 1 update due to versionlock (use "yum versionlock status" to show it)

    • 因为版本锁定,yum 排除了一个更新。你可以使用 yum versionlock status 命令查看哪些软件包被锁定。
  4. Installed Packages

    • 显示了安装在系统上的软件包的信息。
  5. Name : chromium

    • 软件包的名称是 chromium
  6. Arch : x86_64

    • 软件包的架构是 x86_64,即 64 位的架构。
  7. Version : 126.0.6478.114

    • 安装的软件包的版本号是 126.0.6478.114
  8. Release : 1.el7

    • 软件包的发布版本是 1.el7。这里的 el7 表示这是为 CentOS/RHEL 7 系列系统构建的版本。
  9. Size : 249 M

    • 软件包的大小为 249 兆字节 (MB)。
  10. Repo : installed

    • 表示该软件包已经安装在系统上。
  11. From repo : epel

    • 软件包来自 epel 仓库(Extra Packages for Enterprise Linux),这是一个由 Fedora 项目维护的额外软件包仓库。
  12. Summary : A WebKit (Blink) powered web browser that Google doesn't want you to use

    • 软件包的简短描述:Chromium 是一个由 WebKit (Blink) 引擎驱动的网页浏览器,Google 不希望你使用它。
  13. URL : http://www.chromium.org/Home

    • 官方网站的 URL,提供了更多关于 Chromium 的信息。
  14. License : BSD-3-Clause AND LGPL-2.1-or-later AND Apache-2.0 AND IJG AND MIT AND GPL-2.0-or-later AND ISC AND OpenSSL AND (MPL-1.1 OR GPL-2.0-only OR LGPL-2.0-only)

    • 软件包的许可证信息,表示 Chromium 使用了多种开源许可证,包括 BSD-3-Clause、LGPL-2.1-or-later、Apache-2.0、IJG、MIT、GPL-2.0-or-later、ISC、OpenSSL 和 MPL-1.1 或 GPL-2.0-only 或 LGPL-2.0-only。
  15. Description : Chromium is an open-source web browser, powered by WebKit (Blink).

    • 软件包的详细描述:Chromium 是一个开源的网页浏览器,由 WebKit (Blink) 引擎驱动。

这条输出提供了关于 Chromium 浏览器的全面信息,包括版本、来源、许可证和一些基本的描述。

Summary : A WebKit (Blink) powered web browser that Google doesn't want you to use
Google 为什么不希望你使用它?

“Google 不希望你使用它” 这个描述其实是个半开玩笑的说法,通常用于突出 Chromium 和 Google Chrome 之间的关系和差异。

这里的意思是:

  1. Google Chrome 和 Chromium 的关系

    • Chromium 是一个开源的网页浏览器项目,它为 Google Chrome 提供了基础。Google Chrome 是基于 Chromium 构建的,但包含了额外的功能和服务,比如 Google 的同步服务、自动更新、内置的 PDF 查看器和某些专有的插件。
    • Google Chrome 是 Google 的商业产品,包含了专有的功能和 Google 的服务。
  2. Google 的商业利益

    • Google Chrome 集成了 Google 的服务,比如 Google 搜索引擎、Google 账户的同步功能等,这些服务有助于 Google 收集用户数据以改善其广告业务和其他服务。
    • Chromium 作为开源项目,不包含这些专有的功能和服务。它更注重隐私和开放性,因此不依赖于 Google 的服务。
  3. 开发和更新

    • Google 对 Chrome 的开发和更新有很大的控制权,包括定期推出新的功能和安全更新。
    • Chromium 项目是由一个更广泛的开源社区和 Google 自身共同维护的,但更新和新特性可能不会像 Chrome 那样频繁。
  4. 用户数据和隐私

    • Chromium 不收集用户数据,用户可以在不依赖 Google 服务的情况下使用它,从而提高隐私保护。
    • 另一方面,Google Chrome 可能会收集用户的使用数据,这些数据有助于改善 Chrome 和 Google 的服务,但也可能影响隐私。

因此,“Google 不希望你使用它” 是一种幽默的说法,强调了 Chromium 作为开源浏览器的特性和与 Google Chrome 的不同,同时也暗示了 Google 对其商业产品(Chrome)的偏好。

# rpm -ql  chromium
/etc/chromium/chromium.conf
/etc/chromium/master_preferences
/etc/chromium/policies
/etc/chromium/policies/managed
/etc/chromium/policies/recommended
/usr/bin/chromium-browser
/usr/lib64/chromium-browser/chrome-sandbox
/usr/lib64/chromium-browser/chrome_100_percent.pak
/usr/lib64/chromium-browser/chrome_200_percent.pak
/usr/lib64/chromium-browser/chrome_crashpad_handler
/usr/lib64/chromium-browser/chromium-browser
/usr/lib64/chromium-browser/chromium-browser.sh
/usr/lib64/chromium-browser/resources.pak
/usr/lib64/chromium-browser/v8_context_snapshot.bin
/usr/share/applications/chromium-browser.desktop
/usr/share/doc/chromium-126.0.6478.114
/usr/share/doc/chromium-126.0.6478.114/AUTHORS
/usr/share/doc/chromium-126.0.6478.114/README.fedora
/usr/share/doc/chromium-126.0.6478.114/chrome.json
/usr/share/doc/chromium-126.0.6478.114/chrome_policy_list.html
/usr/share/gnome-control-center/default-apps/chromium-browser.xml
/usr/share/icons/hicolor/128x128/apps/chromium-browser.png
/usr/share/icons/hicolor/24x24/apps/chromium-browser.png
/usr/share/icons/hicolor/256x256/apps/chromium-browser.png
/usr/share/icons/hicolor/48x48/apps/chromium-browser.png
/usr/share/icons/hicolor/64x64/apps/chromium-browser.png
/usr/share/licenses/chromium-126.0.6478.114
/usr/share/licenses/chromium-126.0.6478.114/LICENSE
/usr/share/man/man1/chromium-browser.1.gz
/usr/share/metainfo/chromium-browser.appdata.xml

# rpm -ql  chromium  |grep bin
/usr/bin/chromium-browser
/usr/lib64/chromium-browser/v8_context_snapshot.bin

chromium-browser --no-sandbox --headless --disable-gpu --disable-software-rasterizer --print-to-pdf=/tmp/www.baidu.com.pdf https://www.baidu.com/

这条命令使用 Chromium 浏览器以无头模式(headless mode)生成一个网页的 PDF 文件。

下面是对这条命令中各个部分的详细解读:

chromium-browser --no-sandbox --headless --disable-gpu --disable-software-rasterizer --print-to-pdf=/tmp/www.baidu.com.pdf https://www.baidu.com/
  1. chromium-browser:

    • 这是调用 Chromium 浏览器的命令。在某些系统上,可能是 chromiumchromium-browser,具体取决于安装和配置方式。
  2. --no-sandbox:

    • 这个选项禁用 Chromium 的沙箱机制。沙箱是一种安全机制,用于隔离进程以防止恶意代码影响系统的其他部分。在某些无头模式下,沙箱可能会引发问题,因此这个选项常用于自动化脚本中。
  3. --headless:

    • 以无头模式运行 Chromium,这意味着浏览器不会启动图形用户界面(GUI)。这对于自动化任务非常有用,因为不需要显示浏览器窗口。
  4. --disable-gpu:

    • 禁用 GPU 加速。因为在无头模式下,GPU 加速通常没有用处,禁用它可以避免不必要的开销。
  5. --disable-software-rasterizer:

    • 禁用软件光栅化器。在图形处理的上下文中,光栅化器负责将图形渲染为像素。如果禁用 GPU 加速,那么软件光栅化器也会被禁用,以减少资源的使用。
  6. --print-to-pdf=/tmp/www.baidu.com.pdf:

    • 将指定的网页保存为 PDF 文件。这里 /tmp/www.baidu.com.pdf 是输出的 PDF 文件路径,Chromium 会将访问的网页保存为这个 PDF 文件。
  7. https://www.baidu.com/:

    • 要访问并保存为 PDF 的网页 URL。在这个例子中,它是百度的主页。

总结

这条命令会启动 Chromium 浏览器,在无头模式下访问 https://www.baidu.com/,然后将该网页保存为 /tmp/www.baidu.com.pdf 文件。过程中禁用了沙箱、GPU 加速以及软件光栅化器,以简化操作并避免可能的图形处理问题。这种用法通常用于自动化任务,如生成网页截图或 PDF 文件,特别是在服务器环境中。

无头模式(headless mode)指的是在没有图形用户界面(GUI)的情况下运行程序或应用程序的模式。在浏览器的上下文中,无头模式意味着浏览器在后台运行,不会显示窗口或图形界面,但仍然可以执行浏览网页、渲染页面和运行 JavaScript 等操作。

无头模式的特点和用途

  1. 无需图形界面:

    • 在无头模式下,浏览器不会启动 GUI 组件,因此不会显示在屏幕上。这意味着所有的页面渲染和操作都在后台进行。
  2. 自动化和测试:

    • 无头模式常用于自动化测试和脚本运行。因为不需要图形界面,它可以在没有显示器的服务器上运行,适合 CI/CD 流程中的自动化测试。例如,使用 Selenium、Puppeteer 或 Playwright 进行网站功能测试时,经常会用到无头模式。
  3. 资源节约:

    • 由于没有 GUI 的开销,资源使用更加高效,CPU 和内存的占用通常会减少。这使得无头模式特别适合需要大量并发的自动化任务或在资源有限的环境中运行。
  4. 脚本和批处理:

    • 对于需要批量处理或生成静态内容(如网页截图、PDF 文件)的任务,无头模式是一个理想的选择。例如,生成网页的 PDF 或截取网页截图时,通常会使用无头模式,以避免图形界面的开销和干扰。
  5. 服务器和云环境:

    • 无头模式特别适合在服务器或云环境中使用,因为这些环境通常没有显示器或图形用户界面。无头模式允许在这些环境中执行浏览器操作而不需要图形显示。

示例应用场景

  • 网页抓取:

    • 使用无头模式进行网页抓取(web scraping),从网站上提取数据。由于没有 GUI,它比传统的图形界面浏览器更高效。
  • 自动化测试:

    • 在自动化测试环境中运行测试脚本,不需要显示浏览器窗口,通过无头模式可以快速进行回归测试和功能测试。
  • 生成报告和文档:

    • 自动化生成网页截图或 PDF 报告,无头模式使得这些任务可以在后台批量处理,适合生成报告和文档的自动化任务。

总之,无头模式提供了一种高效的方式来运行和测试网页应用程序,特别是在需要批量处理、自动化测试或在没有图形界面的环境中运行时。

Puppeteer 是一个用于控制和自动化 Chromium 或 Google Chrome 浏览器的 Node.js 库。

它主要用于以下几种用途:

主要功能

  1. 浏览器自动化:

    • Puppeteer 允许开发者通过编程的方式自动化浏览器操作,比如填充表单、点击按钮、截屏等。这对于测试、网页爬取和自动化任务非常有用。
  2. 无头浏览模式:

    • Puppeteer 可以以无头(headless)模式运行,即在没有图形用户界面的情况下运行浏览器。这对于自动化任务和性能测试非常有用,因为无头模式通常比传统模式更高效。
  3. 页面操作:

    • Puppeteer 提供了丰富的 API 来操作网页,如模拟用户交互(点击、输入文本、滚动等)、获取网页内容、生成 PDF 等。
  4. 性能测试:

    • 你可以使用 Puppeteer 进行性能测试,比如测量页面加载时间、生成性能报告等。
  5. 截图和 PDF 生成:

    • Puppeteer 支持截取网页截图和生成 PDF 文件。这对于需要生成报告、文档或进行网页截图的应用程序非常有帮助。

使用 Puppeteer 的场景

  • 测试自动化: 自动化前端测试,模拟用户交互并验证网页行为。
  • 网络爬虫: 自动化抓取网页内容,用于数据收集和分析。
  • 网页截图和 PDF: 生成网页的图像或 PDF 文档。
  • 性能监控: 监测和记录页面加载时间和其他性能指标。

基本使用示例

以下是一个使用 Puppeteer 截图的简单示例:

const puppeteer = require('puppeteer');

(async () => {
  // 启动浏览器
  const browser = await puppeteer.launch();
  const page = await browser.newPage();
  
  // 打开网页
  await page.goto('https://example.com');
  
  // 截图并保存
  await page.screenshot({ path: 'example.png' });
  
  // 关闭浏览器
  await browser.close();
})();

主要组件

  • puppeteer-core: 这是 Puppeteer 的核心库,它不包括 Chromium 浏览器本身。你可以使用它来与已经安装的 Chromium 或 Chrome 实例进行交互。
  • puppeteer: 这是 Puppeteer 的完整版本,它包括了核心库和一个 Chromium 浏览器二进制文件。通常建议使用这个版本来避免手动处理浏览器的安装问题。

Puppeteer 是一个强大且灵活的工具,广泛应用于自动化测试、网页抓取和性能分析等领域。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,088评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,715评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,361评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,099评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 60,987评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,063评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,486评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,175评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,440评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,518评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,305评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,190评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,550评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,880评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,152评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,451评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,637评论 2 335