之前跑 puppeteer 都是在 windows 或者 macos 上,有可视化界面,通过 puppeteer 启动谷歌浏览器然后跑任务,但是像 debian ,centos 这种纯命令行的 linux, 没法安装 chrome 或者 chromium 浏览器,怎么运行 puppeteer 呢
1 0o0O0o0O0o 2024-02-19 19:22:20 +08:00 via iPhone headless mode 或者 xvfb |
2 67373net 2024-02-19 21:26:14 +08:00 我是先装一个 chromium ,再用 npm 装 puppeteer ,在 nodejs 里使用的,很久前弄的忘记细节了,好像当时匹配版本和缓存目录啥的折腾了一下 |
3 67373net 2024-02-19 21:28:24 +08:00 好像记错了,是装的 chrome ,反正命令行的关键词是「无头模式」 |
![]() | 4 dontLookAvatar 2024-02-19 22:05:52 +08:00 docker |
![]() | 5 weijancc 2024-02-19 22:15:43 +08:00 我以前在 windows 用 puppeteer 都是用无头模式的, 爬取更快, 在 Linux 上当然也可以 |
![]() | 6 DingJZ 2024-02-19 23:39:04 +08:00 puppeteer 的文档里有写啊 |
![]() | 7 mogita 2024-02-19 23:45:45 +08:00 via iPhone 跟着文档走吧,有手把手章节。我按照说明打包进 docker 镜像都可以,宿主环境运行不会更复杂。 |
8 512357301 2024-02-20 00:06:28 +08:00 via Android 建议用一下午时间学一下 docker ,常用 linux 软件可以实现一键部署 |
![]() | 9 param 2024-02-20 06:09:50 +08:00 via Android 就算是 headless mode ,也要装一堆 gui 相关的依赖 |
![]() | 10 defunct9 2024-02-20 08:13:44 +08:00 via iPhone 现在天天在 ubuntu 下跑 puppyteer ,跟苹果的 gsx2 和自有的 boms 做交互,装个 rdp 就可以了 |
11 minicoder 2024-02-20 11:12:24 +08:00 ![]() 你的需求跟我很像 针对有反爬机制的网站,必须使用有头模式运行浏览器,否则会被目标网站抓取到特征值。 安装 xvfb 模拟桌面端环境 就可以解决你的问题。 |
12 bakaft 2024-02-20 16:43:34 +08:00 “没法安装 chrome 或者 chromium 浏览器” 包管理器尽管 *可能* 会安装 GUI 相关的依赖,但是基本不会因为你没有屏幕或者桌面而阻碍你安装 Chrome/Chromium. 自 Chrome 59 起,安装中会随附无头 Chrome ,使用 `--headless`参数就可以了。 参考: https://www.google.com/chrome/?platform=linux https://support.google.com/chrome/a/answer/9025903?hl=en&ref_topic=9025817&sjid=16181384649920985311-AP https://developer.chrome.com/blog/headless-chrome?hl=zh-cn#tldr |
![]() | 13 libook 2024-02-20 16:51:35 +08:00 根据我个人的经验,除了 Ubuntu 以外,基本都可以安装 chrome 、chromium 来跑无头 puppeteer ,你直接装试试,实在不行就用别人打好的容器镜像,或者 browserless 这种项目。 |