关于pptr云端cloud方案要点

166 阅读2分钟

基于pptr的puppeteer和chrome爬虫的方案一般来讲有如下几个方案

  1. 本机(无法大规模)
  2. 使用PAAS,比如apify但是费用比较高。
  3. 自己搭建apify的平台?怎么办?

研究一下apify

a) actor其实就是你代码

b) task其实就是把你的代码打包docker的image

c) run其实就是run一次这个docker image

所以重点是,怎么把code打包成docker然后部署到linux服务器上,当然如果不用docker也可以,但是如何把chromium安装到linux上面比较难,因为chrome本事需要绑定很多东西(二进制的)才能用。文档来源: developers.google.com/web/tools/p…

当然docker的好处是多多的。这样打包后,可以用在aws的lamda上面,当然如果你不用lamda,可以用GCF(goolg自己的linux绑定了chromiumum)直接运行pptr。

下面考虑。

1. 如何打包

I) google给的方案 developers.google.com/web/tools/p…

如果不行的话,有人做了二进制,如下:

github.com/alixaxel/ch… 体积比较小,可以直接用在lamda上面。非常不错。

II) 用apify的打包如下

docs.apify.com/actors/deve…

代码上面有dockerfile的例子

github.com/VaclavRut/a…

2. 如何运行docker

I) apify的方案

直接把运行的代码也一起打包,包括设置的input.json参数,即一个task;具体见 github.com/VaclavRut/a…

运行一次结束后可以再运行,直接docker run --name即可;无法提供参数。

II) google的方案

单独打包chrome,同时暴露端口,方便把数据传输给docker内部的,这样pptr直接探囊取物去调用chrome,例子

github.com/ebidel/try-…

这样做的好处是:

可以通过docker外边传输代码(通过暴露的端口)给pptr去执行,这样实现了http云操作!!操作的是浏览器噢!!

神奇吧?!看这里

try-puppeteer.appspot.com/

云浏览器就是这样诞生的!!比如 browserless.io

关于pptr和chrommuim的全部内容,你看我这个一个文章就够了!~~