腾讯云函数部署puppeteer,第一次体验还不错

编程笔记 小碎银 3年前 (2020-09-24) 5975次浏览 0个评论
文章目录[隐藏]

腾讯云函数部署puppeteer,第一次体验还不错

最近几天,在用puppeteer做爬虫,爬一爬谷歌应用商店,爬一爬各种js动态加载的网站。看着电脑上爬下来的内容越来越多,感觉很满足。

虽然puppeteer很爽,但是其工作原理决定了它的效率并不会非常高。。。

比如说我想把谷歌商店的所有插件都爬下来,下载一个大概需要两三秒的时间,全部爬完需要挺长时间的。当然这个两三秒是有很大的优化空间的,但是我害怕谷歌封我IP,就没处理….

我想着长期运行这些爬虫,那就肯定不能只在本地跑,必须部署到服务器上才比较省心。但是我只有一个1G内存的小鸡服务器,这个puppeteer又是个吃内存的大户,跑这个有点吃力。

所以我就打算用腾讯云的云函数去部署,先用puppeteer实现一个简单的截图功能

下面就是部署的过程:

新建一个项目

打开云函数的控制台,然后新建一个云函数,如下图,语言node,我用的是比较新的版本:

腾讯云函数部署puppeteer,第一次体验还不错

填写函数名字、选择模板之后,点击下一步。

提交方法选择在线编辑

把这段代码复制到index.js文件中:

‘use strict’;
const puppeteer = require(‘puppeteer’);
const fs = require(‘fs’);
exports.main_handler = async (event, context, callback) => {
const browser = await puppeteer.launch({args: [‘–no-sandbox’]});
const page = await browser.newPage();
await page.goto(‘https://www.google.com’);
await page.screenshot({path: ‘/tmp/example.png’});
await browser.close();
let img = fs.readFileSync(‘/tmp/example.png’);
let data = {
isBase64Encoded: true,
statusCode: 200,
headers: {‘content-type’: ‘image/png’},
body: img.toString(‘base64’),
};
return data;
};

腾讯云函数部署puppeteer,第一次体验还不错

上面的代码的功能是打开谷歌的首页,然后截个图。

另外,腾讯云函数的node 10.15以上版本自带puppeteer,不用自己安装。这就省去了非常多的麻烦!

这要是我为啥要用云函数部署puppeteer的主要原因。

启动

点击测试,稍等一下,就会看到控制台的输出结果了。

如果第一次失败了,不妨再试一次。可能是网络不稳定。

腾讯云函数部署puppeteer,第一次体验还不错


end

 

 


小碎银 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:腾讯云函数部署puppeteer,第一次体验还不错
喜欢 (3)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址