Linux 怎么运行 puppeteer

2024-02-19 19:06:38 +08:00
 fescover

之前跑 puppeteer 都是在 windows 或者 macos 上,有可视化界面,通过 puppeteer 启动谷歌浏览器然后跑任务,但是像 debian ,centos 这种纯命令行的 linux, 没法安装 chrome 或者 chromium 浏览器,怎么运行 puppeteer 呢

2870 次点击
所在节点    Linux
13 条回复
0o0O0o0O0o
2024-02-19 19:22:20 +08:00
headless mode 或者 xvfb
67373net
2024-02-19 21:26:14 +08:00
我是先装一个 chromium ,再用 npm 装 puppeteer ,在 nodejs 里使用的,很久前弄的忘记细节了,好像当时匹配版本和缓存目录啥的折腾了一下
67373net
2024-02-19 21:28:24 +08:00
好像记错了,是装的 chrome ,反正命令行的关键词是「无头模式」
dontLookAvatar
2024-02-19 22:05:52 +08:00
docker
weijancc
2024-02-19 22:15:43 +08:00
我以前在 windows 用 puppeteer 都是用无头模式的, 爬取更快, 在 Linux 上当然也可以
DingJZ
2024-02-19 23:39:04 +08:00
puppeteer 的文档里有写啊
ck65
2024-02-19 23:45:45 +08:00
跟着文档走吧,有手把手章节。我按照说明打包进 docker 镜像都可以,宿主环境运行不会更复杂。
512357301
2024-02-20 00:06:28 +08:00
建议用一下午时间学一下 docker ,常用 linux 软件可以实现一键部署
param
2024-02-20 06:09:50 +08:00
就算是 headless mode ,也要装一堆 gui 相关的依赖
defunct9
2024-02-20 08:13:44 +08:00
现在天天在 ubuntu 下跑 puppyteer ,跟苹果的 gsx2 和自有的 boms 做交互,装个 rdp 就可以了
minicoder
2024-02-20 11:12:24 +08:00
你的需求跟我很像
针对有反爬机制的网站,必须使用有头模式运行浏览器,否则会被目标网站抓取到特征值。
安装 xvfb 模拟桌面端环境 就可以解决你的问题。
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
libook
2024-02-20 16:51:35 +08:00
根据我个人的经验,除了 Ubuntu 以外,基本都可以安装 chrome 、chromium 来跑无头 puppeteer ,你直接装试试,实在不行就用别人打好的容器镜像,或者 browserless 这种项目。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1016632

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX