1.背景
使用puppeteer时会默认下载chrome,由于要访问google,因此没有使用代理情况下,无法成功下载。通常是设置好环境变量,跳过chrome下载,随后单独下载chrome,并在浏览器启动项executablePath中指定文件路径。
{
headless: true
args: []
executablePath : "chromePath"
}
官方给出的chromium离线下载安装地址[1]如果不挂代理通常也无法打开。如果在linux/mac/windows平台下,设置了chrome执行文件的路径也可以正常启动。因此只要在不同平台下载chrome文件,随后指定路径,即可启动不同版本的chrome。
2. MacOS系统下载并使用不同版本的chrome
在有界面环境下测试,可以选择下载任意一个chrome版本。Mac系统下载的chrome文件通常是一个dmg文件,即mac下的磁盘镜像文件。当下载完毕,双击chrome的dmg文件,将其挂载,随后通过右键选择将其打开,即可进入安装文件目录。
目录中如下路径即是配置在puppeteer中启动chrome的路径。
/Volumes/Google\ Chrome/Google\ Chrome.app/Contents/MacOS/Google\ Chrome
3. Linux系统下载并使用不同版本的chrome
同macOs类似,在有界面环境下测试,linux下我们可以下载chrome的rpm包或deb包随后将其打开获取chrome即可。
rpm包下载完毕后,可以使用rpm2cpio[2]命令将其文件提取。
对于deb包,在mac下可以通过B1FreeArchiver这个工具打开,随后解压将文件提取。
文件提取完毕后,指定文件路径,即可启动不同版本的linux chrome。
4 下载特定版本的chromium
如果无界面环境下遇到错误,要提示我们下载特定版本,我们在启动时可能会遇到启动报错。这时去下载对应版本即可。可以在国内的镜像地址[3],找到对应的版本,然后下载使用即可。
Timed out after 30000 ms while trying to connect to Chrome! The only Chrome revision guaranteed to work is r624492
参考
[1].chroium官方下载地址,https://download-chromium.appspot.com/.
[2].rpm2cpio的使用,https://stackoverflow.com/questions/18787375/how-do-i-extract-the-contents-of-an-rpm
[3].https://npm.taobao.org/mirrors/chromium-browser-snapshots/Linux_x64/