PHP使用puppeteer抓取JS渲染后的页面内容
作者:RiverSoul
时间:2026-07-23
浏览:10
PhpStorm macOS版
PhpStorm 是 JetBrains 推出的专业 PHP 集成开发环境,可在 Mac 上完成代码编写、智能检查、重构、调试、测试和数据库管理。它支持主流 PHP 框架、Composer、Git、Docker 与远程解释器。
¥890
Mac
2026-10-13
最近研究了一下怎么爬取那些Ja vaScript渲染后的网页内容,折腾了一圈,发现核心武器还是得靠Puppeteer。不过它是个Node库,想在PHP里用还得再套一层,这里用到了`spatie/browsershot`这个包。下面把整个流程和踩坑点都捋一遍。 ## 环境依赖 先看看环境要求,其实不算
本文目录
最近研究了一下怎么爬取那些Ja vaScript渲染后的网页内容,折腾了一圈,发现核心武器还是得靠Puppeteer。不过它是个Node库,想在PHP里用还得再套一层,这里用到了`spatie/browsershot`这个包。下面把整个流程和踩坑点都捋一遍。
## 环境依赖
先看看环境要求,其实不算高,但有几个硬性门槛:
| 环境 | 要求 |
| --- | --- |
| Node | >= 7.6.0 |
| PHP | >= 7.1 |
| PHP extension | php_sockets, php_exif |
## puppeteer
Puppeteer是个Node库,可以直接在PHP项目下用npm安装,然后通过`spatie/browsershot`来调用。当然,也可以单独新建一个Node项目来装这个库,然后对外暴露一个接口,通过传URL返回HTML内容,但那样多了一层网络开销,不如直接本地调用方便。
```bash
npm i puppeteer --sa ve
```
## 离线安装Chromium
安装Puppeteer的时候会自动下载Chromium,但众所周知的原因,这个下载过程常常卡死。所以下面给出一套离线安装的方案,省得反复重试。
### 跳过安装chromium
如果已经运行了上面的命令并且正在下载Chromium,可以直接`Ctrl+C`停掉。如果还没运行,就用下面这个命令来安装,跳过自动下载:
```bash
npm i puppeteer --ignore-scripts
```
### 获取需要下载的chromium版本号
打开`/node_modules/puppeteer/package.json`,搜索`chromium_revision`,后面那个数字就是版本号。比如:
```json
"puppeteer": {
"chromium_revision": "756035",
"firefox_revision": "latest"
}
```
### 下载对应版本的chromium
用上面拿到的版本号替换掉下方花括号里的字符。比如本地是Windows 64位,下载地址就是`https://commondatastorage.googleapis.com/chromium-browser-snapshots/Win_x64/756035/chrome-win.zip`。
- Mac版:`https://commondatastorage.googleapis.com/chromium-browser-snapshots/Mac/{chromium版本}/chrome-mac.zip`
- Windows 64位:`https://commondatastorage.googleapis.com/chromium-browser-snapshots/Win_x64/{chromium版本}/chrome-win.zip`
- Windows 32位:`https://commondatastorage.googleapis.com/chromium-browser-snapshots/Win/{chromium版本}/chrome-win.zip`
- Linux X86:`https://commondatastorage.googleapis.com/chromium-browser-snapshots/Linux/{chromium版本}/chrome-linux.zip`
- Linux X64:`https://commondatastorage.googleapis.com/chromium-browser-snapshots/Linux_x64/{chromium版本}/chrome-linux.zip`
### 解压
把下载好的压缩包解压到Puppeteer目录下的`.local_chromium/win64-{版本号}/`里。比如本地路径是`/node_modules/puppeteer/.local_chromium/win64-756035/chrome-win/`。搞定,Chromium就可以正常使用了。
## spatie/browsershot
browsershot是一个Composer包,之前也用过这个团队做的`spatie/lara vel-permission`,质量一直不错。
```bash
composer require spatie/browsershot
```
## 使用
其实最难的部分就是装环境和配置工具,真到了使用环节反而简单。下面放一个最基础的例子,更多高级用法还是直接看官方文档比较靠谱。
```php
bodyHtml();
}
}
```
## 总结
从安装到使用,整个链条不算复杂,但离线安装Chromium这个环节很容易卡住,提前准备好离线包能省不少时间。工具选对了,后面就是几行代码的事。
本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系bd@zhengruan.com
作者最新文章
漫蛙漫画app下载安装最新版本
2026-10-13 13:19
漫蛙漫画官网入口链接
2026-10-13 13:19
漫蛙2漫画APP最新版本下载免费安装
2026-10-13 13:17
漫蛙漫画官网正版登录入口
2026-10-13 13:15
Windows安装Docker教程:启用WSL2并运行第一个容器验证
2026-10-08 17:47
上一篇:
基于PHP实现一个简单的http服务器
热门文章
更多
精品专题
更多
Mac软件
更多
WINDOWS
更多


































