之前跑 puppeteer 都是在 windows 或者 macos 上,有可视化界面,通过 puppeteer 启动谷歌浏览器然后跑任务,但是像 debian ,centos 这种纯命令行的 linux, 没法安装 chrome 或者 chromium 浏览器,怎么运行 puppeteer 呢
1
0o0O0o0O0o 310 天前 via iPhone
headless mode 或者 xvfb
|
2
67373net 310 天前
我是先装一个 chromium ,再用 npm 装 puppeteer ,在 nodejs 里使用的,很久前弄的忘记细节了,好像当时匹配版本和缓存目录啥的折腾了一下
|
3
67373net 310 天前
好像记错了,是装的 chrome ,反正命令行的关键词是「无头模式」
|
4
dontLookAvatar 310 天前
docker
|
5
weijancc 310 天前
我以前在 windows 用 puppeteer 都是用无头模式的, 爬取更快, 在 Linux 上当然也可以
|
6
DingJZ 310 天前
puppeteer 的文档里有写啊
|
7
ck65 310 天前 via iPhone
跟着文档走吧,有手把手章节。我按照说明打包进 docker 镜像都可以,宿主环境运行不会更复杂。
|
8
512357301 310 天前 via Android
建议用一下午时间学一下 docker ,常用 linux 软件可以实现一键部署
|
9
param 309 天前 via Android
就算是 headless mode ,也要装一堆 gui 相关的依赖
|
10
defunct9 309 天前 via iPhone
现在天天在 ubuntu 下跑 puppyteer ,跟苹果的 gsx2 和自有的 boms 做交互,装个 rdp 就可以了
|
11
minicoder 309 天前 1
你的需求跟我很像
针对有反爬机制的网站,必须使用有头模式运行浏览器,否则会被目标网站抓取到特征值。 安装 xvfb 模拟桌面端环境 就可以解决你的问题。 |
12
bakaft 309 天前
“没法安装 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 309 天前
根据我个人的经验,除了 Ubuntu 以外,基本都可以安装 chrome 、chromium 来跑无头 puppeteer ,你直接装试试,实在不行就用别人打好的容器镜像,或者 browserless 这种项目。
|