腾讯云scf爬虫实战
概述
快到过年了。今年开车回家。开车回家最头疼的问题就是,堵车。。。然后在看百度地图规划路线的时候,了解到百度地图的路线规划接口是实时根据当前路况进行的时间预估,可以简单的利用这个接口来评估出一天当中什么时间段高速路比较堵。
然后定时爬虫、简单的canvas展示,就ok,简简单单用腾讯云scf实现刚刚好。刚好项目不忙,所以用一个下午,把爬虫项目弄好了。
技术栈:腾讯云scf、mongodb、node、axios、echarts
准备
新建项目
首先需要新建一个基于Node8.9的云函数。用于定时爬取数据,另外新建一个基于Node8.9的前端云函数,用于展示数据
爬虫云函数选择Node8.9环境,选择空白模板,一路确定就行。
新建前端云函数选择Node8.9环境,模板选择API 网关返回自定义html页面
,模板包含了如何返回html页面的代码。
新建完成后,进入云函数详情=》触发方式选项卡 =》添加触发方式 =》触发方式选择api网关触发器
=》请求方法选择GET
。保存后就会生成一个访问路径。访问展示数据的html就是这个连接。
还要配置一下返回类型,接口只会返回一段JSON。
点击API服务名 =》点击管理API选项卡 =》编辑 =》直接下一步直到第三步:响应结果 =》 返回类型选择HTML =》 完成。
这时上面生成的链接就可以访问啦。返回的是模板默认生成的一个拜年H5。
安装开发环境
之前的文章简单说明了vscode 插件开发,这次尝试了SCF CLI,发现更好用(至少没bug)
安装scf cli
下载云端代码方式还是通过vscode插件来下载。
切换到对应项目根目录运行scf native invoke --no-event
即可运行测试代码
scf deploy -f
把代码提交到云端
开发
简单到不想写。
bug
之后开发(过了几天?),无法把数据写入数据库
好像是隔了几天之后开发,会遇到无法把数据写入数据库的问题,代码没有报错,单纯的无法 写入数据。
临时解决办法是,在腾讯云平台上重新复制一份云函数,才能继续保存。