PHP使用puppeteer抓取JS渲染后的页面内容 |
||||||||
|
最近遇到一个问题,需要爬取js渲染后的网页内容,因此研究了下相关实现方式 。主要借助 环境依赖
puppeteerPuppeteer是一个 npm i puppeteer --save 离线安装Chromium安装 跳过安装chromium如果已经运行上一步的命令并且正在下载 npm i puppeteer --ignore-scripts 获取需要下载的chromium版本号打开 "puppeteer": {
"chromium_revision": "756035",
"firefox_revision": "latest"
}
下载对应版本的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
解压将下载下来的 spatie/browsershotbrowsershot 是一个 composer require spatie/browsershot 使用其实困难的部分就是找到合适的工具以及安装工具,真正使用反而很简单 。下面列了一个很简单的例子,更多方法还是去看官方文档吧 。 <?php
use SpatieBrowsershotBrowsershot;
class Spider
{
/**
* 获取html内容
* @param $url
* @return string
*/
public static function getBodyHtml($url)
{
return Browsershot::url($url)->bodyHtml();
}
}总结到此这篇关于PHP使用puppeteer抓取JS渲染后的页面内容的文章就介绍到这了,更多相关PHP获取JS渲染后的页面内容内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持! |