加油
努力

如何在腾讯云轻量服务器上安装并运行浏览器?

在腾讯云轻量服务器(如轻量应用服务器 Lighthouse)上安装并运行浏览器,通常用于自动化测试、爬虫、截图等场景。由于服务器是 Linux 系统(如 Ubuntu/CentOS),默认没有图形界面,因此需要以“无头模式”(headless)运行浏览器。

以下是详细的步骤,以 Ubuntu 系统 为例,在腾讯云轻量服务器上安装并运行 Chrome 浏览器(使用 Google Chrome + Puppeteer 或命令行方式):


✅ 步骤一:更新系统

sudo apt update && sudo apt upgrade -y

✅ 步骤二:安装 Google Chrome 浏览器

  1. 下载并添加 Google 的 GPG 密钥:
wget -q -O - https://dl.google.com/linux/linux_signing_key.pub | sudo apt-key add -
  1. 添加 Chrome 的 APT 源:
echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" | sudo tee /etc/apt/sources.list.d/google-chrome.list
  1. 安装 Chrome 浏览器:
sudo apt update
sudo apt install google-chrome-stable -y

✅ 验证安装:

google-chrome --version

✅ 步骤三:安装依赖库(重要!)

Chrome 在无头服务器上运行需要一些图形和字体依赖:

sudo apt install -y xvfb xz-utils wget fonts-liberation libappindicator3-1 libasound2 libatk-bridge2.0-0 libatk1.0-0 libc6 libcairo2 libcups2 libdbus-1-3 libexpat1 libfontconfig1 libgbm1 libgcc1 libglib2.0-0 libgtk-3-0 libnspr4 libnss3 libpango-1.0-0 libpangocairo-1.0-0 libstdc++6 libx11-6 libx11-xcb1 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxext6 libxfixes3 libxi6 libxrandr2 libxrender1 libxss1 libxtst6 ca-certificates fonts-liberation libappindicator1 libnss3 lsb-release xdg-utils

✅ 步骤四:以无头模式运行 Chrome

方式一:直接命令行测试

google-chrome --headless=new --disable-gpu --no-sandbox --screenshot --dump-dom https://example.com
  • --headless=new:启用新版无头模式(推荐)
  • --disable-gpu:禁用 GPU(服务器不需要)
  • --no-sandbox:在容器或特定环境中避免沙箱问题(⚠️ 注意安全)
  • --screenshot:截取页面截图(生成 screenshot.png
  • --dump-dom:输出页面 HTML 内容

执行后会生成 screenshot.png 文件。


✅ 步骤五:使用 Puppeteer(Node.js 自动化控制)

如果你希望更灵活地控制浏览器(如自动点击、登录、滚动等),推荐使用 Puppeteer。

  1. 安装 Node.js(建议 v18+)
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt install -y nodejs
  1. 创建项目并安装 Puppeteer
mkdir browser-test && cd browser-test
npm init -y
npm install puppeteer-core

使用 puppeteer-core 可以指定已安装的 Chrome 路径,避免下载 Chromium。

  1. 编写测试脚本 test.js
const puppeteer = require('puppeteer-core');

(async () => {
  const browser = await puppeteer.launch({
    executablePath: '/usr/bin/google-chrome', // 指向已安装的 Chrome
    headless: true,
    args: [
      '--no-sandbox',
      '--disable-setuid-sandbox',
      '--disable-dev-shm-usage',
      '--disable-gpu'
    ]
  });

  const page = await browser.newPage();
  await page.goto('https://example.com');
  await page.screenshot({ path: 'example.png' });
  console.log('截图已保存为 example.png');

  await browser.close();
})();
  1. 运行脚本
node test.js

✅ 常见问题解决

问题 解决方案
No usable sandbox! 加上 --no-sandbox 参数(仅限可信环境)
Error while loading shared libraries 补全依赖库(见步骤三)
内存不足导致崩溃 轻量服务器建议至少 2GB 内存,或增加 swap
中文乱码 安装中文字体:
sudo apt install -y fonts-wqy-zenhei

✅ 总结

你可以在腾讯云轻量服务器上成功运行浏览器,关键点如下:

  • 使用 --headless 模式无需 GUI
  • 安装完整依赖库
  • 推荐配合 Puppeteer 实现自动化
  • 注意资源占用,避免 OOM

如有进一步需求(如部署 Flask 接口调用浏览器、定时截图等),也可以继续扩展。欢迎继续提问!

云服务器