这里专门开个帖子用来整理采集遇到的问题

PHP抓取JS渲染后的页面内容

PHPer 2024-10-04 6 0 0

获取需要下载的chromium版本号

打开/node_modules/puppeteer/package.json搜索chromium_revision对应的版本号

上面的方法还没有实测,之前遇到的报错一直是Could not find Chrome (ver. 126.0.6478.126).

20241004

PHP抓取JS渲染后的页面内容 - 简书 (jianshu.com)


最近遇到一个问题,需要爬取js渲染后的网页内容,因此研究了下相关实现方式。主要借助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内容的方式实现。

npm i puppeteer --save

离线安装Chromium

安装puppeteer时会下载Chromium,因为众所周知的原因可能会下载不下来,因此下面提供了离线下载的方式。

跳过安装chromium

如果已经运行上一步的命令并且正在下载Chromium了,那可以直接Ctrl+C停止任务。如果还没运行,就使用下面的命令安装。

npm i puppeteer --ignore-scripts

获取需要下载的chromium版本号

打开/node_modules/puppeteer/package.json搜索chromium_revision对应的版本号

"puppeteer": {
    "chromium_revision": "756035",
    "firefox_revision": "latest"
}

下载对应版本的chromium

用上面的版本号替换掉下方花括号里的字符,比如我本地是win x64,下载地址就是https://commondatastorage.googleapis.com/chromium-...
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

解压

将下载下来的chromium安装包解压到puppeteer中的.local_chromium/win64-{chromium版本号}/目录下。以我的为例就是/node_modules/puppeteer/.local_chromium/win64-756035/chrome-win/。搞定~...

立即注册
分享的网址网站均收集自搜索引擎以及互联网,非查问网运营,查问网并没有提供其服务,请勿利用其做侵权以及违规行为。

更新于:2024-10-04 16:22:33
    您需要登录后才可以评论。 立即注册
    相关内容

    PHP向js传数组

    PHP ==及===在获取$_GET[]或者$POST[]后的判断

    nodejs puppeteer 自动化测试和采集的内容整理

    [Bug]: TypeError: page.$x is not a function

    php中动态输出变量内容,查看进程状态的方法

    PHP与APP

    PHP是否可以应用于App开发

    推荐内容

    分享几个好用的bt搜索bt资源下载网址网站

    影视电影剧集动漫综艺bt资源在线播放网址网站推荐分享

    全网最新bt磁力搜索引擎bt资源bt网站网址分享

    人气美女女优百度指数排行榜(波多野结衣,苍井空,三上悠亚,深田咏美,桥本有菜,北条...

    最强人造人深田咏美,业界的社交女王

    人生起起落落的三上悠亚,成名前的清纯风,怎么搭配出来的?

    业内第一大长腿,桥本有菜的腿究竟有多长

    波多野结衣,岛国业界著作最多的超级劳模

    日本AV界NO.1,苍井空是多少宅男的疯狂?

    美女女优视频混剪 This Girl-Laza Morgan

    怎样使用V2Ray代理和SSTap玩如魔兽世界/绝地求生/LOL台服/战地3/黑色沙漠/彩...

    sstap游戏代理教程 从此玩如魔兽世界/绝地求生/LOL台服/战地3/黑色沙漠/彩虹六...

    影视电影剧集动漫综艺bt资源在线播放网址网站推荐分享