抓取网页内容betway:,小程序云开发前言篇

来源:http://www.roro2.com 作者:betway互联网 人气:178 发布时间:2019-11-21
摘要:原标题:微信开发者新增云开发功能,无需搭建服务器可实现小程序快速迭代 image 最近在研究微信小程序的云开发功能。云开发最大的好处就是不需要前端搭建服务器,可以使用云端能

原标题:微信开发者新增云开发功能,无需搭建服务器可实现小程序快速迭代

betway 1image

最近在研究微信小程序的云开发功能。云开发最大的好处就是不需要前端搭建服务器,可以使用云端能力,从零开始写出来一个能上线的微信小程序,避免了买服务器的开销,对于个人来尝试练手微信小程序从前端到后台的开发,还是一个不错的选择。可以做到一天就能上线一个微信小程序。

小程序“云开发”的发布,给小程序注入了一剂猛料,注定会掀起一个小程序狂潮。相信大家看过了文档都说好,今天就记录一下学习小程序“云开发”的一些心得过程,其实如果以前有学过leancloud的话,学这个会觉得so easy。

今日微信公众号发文称,即日起微信小程序开发者工具新增「云开发」功能,开发者无需搭建服务器,就可实现小程序快速上线和迭代。

day14-0914

云开发为开发者提供完整的云端支持,弱化后端和运维概念,无需搭建服务器,使用平台提供的 API 进行核心业务开发,即可实现快速上线和迭代,同时这一能力,同开发者已经使用的云服务相互兼容,并不互斥。

先来看看小程序“云开发”有什么能力。

「云开发」提供三大基础能力,帮助开发者快速开发小程序:

最近,微信小程序开放了云开发,好玩的地方越来越多。

云开发目前提供三大基础能力支持:

  • 云函数:在云端运行的代码,微信私有协议天然鉴权,开发者只需编写自身业务逻辑代码

  • 数据库:一个既可在小程序前端操作,也能在云函数中读写的 JSON 数据库

  • 存储:在小程序前端直接上传/下载云端文件,在云开发控制台可视化管理

1.云函数

官方介绍:

  1. 云函数:在云端运行的代码,微信私有协议天然鉴权,开发者只需编写自身业务逻辑代码
  2. 数据库:一个既可在小程序前端操作,也能在云函数中读写的 JSON 数据库
  3. 存储:在小程序前端直接上传/下载云端文件,在云开发控制台可视化管理

这些能力翻译过来就是:

开发者可根据业务需求,编写函数并部署在云端,即可在小程序内调用。开发者无需维护复杂的鉴权机制,也无需购买、搭建服务器,可便捷地完成小程序开发。

开发者可以使用云开发开发微信小程序、小游戏,无需搭建服务器,即可使用云端能力。

云开发为开发者提供完整的云端支持,弱化后端和运维概念,无需搭建服务器,使用平台提供的 API 进行核心业务开发,即可实现快速上线和迭代,同时这一能力,同开发者已经使用的云服务相互兼容,并不互斥。

好了,介绍了这么多关于云开发的知识,感性的同学可以去研究研究。官方文档地址:

  • 1.你不用再租服务器啦,开通小程序“云开发”即可免费存储数据及文件。(目前来说是免费的,以后不好说,但花钱也是值的,少做了好多工作好伐。)

  • 2.以后你不需要后台给你写接口啦,你可以接入小程序“云开发”在js文件中通过微信提供的API可以直接存取数据啦!

  • 3.对于一些复杂的业务逻辑,小程序“云开发”还贴心地发布了“云函数”来给用户。

2.数据库

从我的角度来说:不需要搭建服务器,不需要购买域名,不需要配置https等等。只需要专心于你的业务逻辑,数据存储和数据流向交互都交给API,你只需要区分逻辑是适合在服务端还是小程序端

小程序是关于答题的,所以题目的来源是一个问题。上网搜,一个题目一个题目粘贴是一种方法,但是这样的重复工作,估计粘个10左右就想放弃了。所以想到了网页抓取。正好把之前学的node捡起来。

可以看见的是,小程序“云开发”的公布,对于一些个人小程序、微小企业的小程序来说,是极大的利好,以前需要2个人才能做的事情,现在一个人也能做啦,还不用出钱租服务器啦,嗯。。。我一个PHP的这么兴奋干嘛...

开发者可直接在小程序前端或云函数中对数据库进行读写,同时支持通过开发者工具内的「云开发」控制台进行数据管理。

  • 使用小程序appid借助官方云开发模版建立项目

    Note: 不能使用测试id,如果没有发现云开发启动模版 ,更新开发者工具

  • 开通云开发

  1. Cheerio。一个类似于服务器端JQuery的包。主要用它来分析和过滤抓取来的内容。
  2. node的fs模块。这个是node自带的模块,用来读写文件的。此处用来将解析好的数据写入json文件。
  3. Axios。用来抓取网站的HTML网页。因为我要的数据是从网页上点击一个button后获取渲染的,所以直接访问这个网址是抓取不到的。无奈只能将想要的内容复制出来,存成字符串,去解析这个字符串。

用过leancloud的朋友们可能对小程序“云开发”肯定有一种很熟悉的感觉,其实它俩的用法是很相似的,但是小程序“云开发”更加方便简单。下面开始小程序“云开发”之旅吧,本篇只是入门篇。

3.存储管理

betway 2image

接下来就可以用npm init来初始化一个node项目,一路回车后,即可生成一个package.json文件。然后npm install --save axios cheerio安装cheerio和axios包。

1.开始

首先把微信开发者工具升级到最新版本,也就是2018-09-10发布的版本(v1.02.1809101)

其次,新建小程序项目,并选择“建立云开发启动模板” // 目前暂不知到如何将已有版本也接入云开发中,有知道的朋友希望可以评论告知一下。

最后,点击微信开发者工具工具栏中,调试器右边的云开发进去,然后同意。填写环境名称就可以开通云开发了。

注:每个小程序允许创建2个免费的环境。其实是让开发者将开发环境和生产环境分离。

开发者可便捷地在小程序前端快速实现文件上传/下载及管理功能,同时也可以在开发者工具「云开发」控制台内进行管理。返回搜狐,查看更多

Note: 点击云开发如果开通失败「error」可能是官方云服务资源压力太大导致稍后重试即可。

关键的是用cheerio来实现一个类似jquery的功能。只需将抓取到的内容cheerio.load(quesitons)一下即可,之后就可以按照jquery的操作取dom,组装你想要的数据了。

2.云函数的部署

再回到微信开发者工具,此时先来熟悉一下操作。

点击头像旁边的 “点击获取openid”,然后跳转界面说是调用失败。(这里调用的是系统初始文件已经写好的云函数,在cloudfunctions/login/index.js中)

调用失败的原因是,没有指定云函数的环境(之前设置名字的那个或是另外1个,如果你创建了2个环境的话。)

解决方法是,选中 cloudfunctions文件夹,右击 ——> 同步云函数/更多设置 ——> 选中cloudfunctions/login文件夹 ——> 右击,选择 创建并部署。

责任编辑:

开通云开发会有多个环境,一般一个用户开发测试,一个用来部署。如果你认为自己的开发需求云开发环境资源不足以使用你可以联系官方进行资源申请。

最后用fs.writeFilebetway,将数据保存到json文件中,大功告成。

3.新建云函数

右键单击 cloudfunctions文件夹,输入云函数的名字。最后别忘了右击该文件夹,选择 创建并部署。

注:此部分要使用npm下载 wx-server-sdk 。

betway 3image

具体代码如下:

4.前端操作数据库和上传图片

照着点就是了,没什么难度。、

注1:小程序“云开发”存取数据要求必须存在集合,leancloud的则可以无视是有有该CLASS,可能各有侧重吧,这对我们来说没什么影响。

注2:小程序“云开发”和leancloud都无需新建列,直接存数据就OK了。

  • 云函数:在云端运行的代码,微信私有协议天然鉴权,开发者只需编写自身业务逻辑代码
let axios = require;let cheerio = require("cheerio");let fs = require;// 我的html结构大致如下,有很多条数据const questions = `<li style="display: list-item;"> <div > <div >举头望明月,__________。</div> <div value="0"> 回首白云低 </div> <div value="1"> 低头思故乡 </div> <div value="0"> 当春乃发生 </div> <div value="0"> 红掌拨清波 </div> </div> </li> <li > <div > <div >__________,却话巴山夜雨时。</div> <div value="1"> 何当共剪西窗烛 </div> <div value="0"> 在天愿做比翼鸟 </div> <div value="0"> 世味年来薄似纱 </div> <div value="0"> 两岸青山相对出 </div> </div> </li> .......... `; const $ = cheerio.load(quesitons);var arr = [];for (var i = 0; i < 300; i++) { var obj = {}; obj.quesitons = $.find(".question").text(); obj.A = $($.find(".answer")[0]).text(); obj.B = $($.find(".answer")[1]).text(); obj.C = $($.find(".answer")[2]).text(); obj.D = $($.find(".answer")[3]).text(); obj.index = i + 1; obj.answer = $($.find(".answer")[0]).attr == 1 ? "A" : $($.find(".answer")[1]).attr == 1 ? "B" : $($.find(".answer")[2]).attr == 1 ? "C" : "D"; arr.push;}fs.writeFile("poem.json", JSON.stringify, err => { if  throw err; console.log("json文件已成功保存!");});

5.小程序“云开发”控制台

小程序“云开发”控制台设计得简洁易懂,不多说。下一篇将会讲讲正式使用小程序“云开发”实战内容,欢迎大家关注~~

betway 4image

保存到json后的文件格式如下,这样就可以通过json文件上传到云端服务器了。

  • 数据库:一个既可在小程序前端操作,也能在云函数中读写的 JSON 数据库

betway 53D4E9FFB-161E-410B-A8D5-CE7B49402FAE.png

betway 6image

微信小程序云开发的数据库,上传json文件的数据格式需要注意一下,之前一直提示格式错误,后来才发现,JSON 数据不是数组,而是类似 JSON Lines,即各个记录对象之间使用 n 分隔,而非逗号。所以还需要对node写出来的json文件做一个小处理之后才能上传成功。

  • 存储:在小程序前端直接上传/下载云端文件,在云开发控制台可视化管理

betway 7image

  • 无法创建云开发环境

    可能是因为第一天刚开放太火爆,云开发资源请求拥挤导致,事后官方也澄清确实如此。如果遇到这个问题,稍后重试即可。

  • 创建环境后无法获取openid

    由于环境创建后不能实时立即同步,导致openid的获取出现异常。你可以尝试关闭开发者工具或者清理缓存,稍等一下,多尝试几次基本就可以获取到。

  • 云函数如何生成

    右键cloudfunctions新建云函数「需要node.js环境支持才可以创建wx-server-sdk

  • 云函数目录不小心删除

    编辑 project.config.json,修改cloudfunctionRoot为你即将新建的目录,修改完成后,新建的该目录会显示云图标。

  • 云函数同步列表失败

    云函数目前只能同步你当前的所有蕴含书列表「空目录」,你需要手动下载云函数到该目录

  • 如何查看当前所有的云函数

    betway 8image

    右键云函数目录,点击更多设置会同步对应环境的云函数列表

  • 如何使用测试环境

    建立你的测试环境后会分配对应的环境id,复制id,在app.js,添加如下代码

//app.jsApp({ onLaunch: function () { console.log if (!wx.cloud) { console.error('请使用 2.2.3 或以上的基础库以使用云能力') } else { wx.cloud.init({ env: 'your_testenv_id', traceUser: true, }) } this.globalData = {} }})

官方云开发文档:Link

本文由必威发布于betway互联网,转载请注明出处:抓取网页内容betway:,小程序云开发前言篇

关键词:

上一篇:没有了

下一篇:没有了

最火资讯