node.js 抓取网页内容(针对微信小程序云开发)【

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

北京幸运28开奖官网 1image

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

责任编辑:

  • 云函数:在云端运行的代码,微信私有协议天然鉴权,开发者只需编写自身业务逻辑代码
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文件已成功保存!");});

1.云函数

北京幸运28开奖官网 2image

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

3.存储管理

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

北京幸运28开奖官网 33D4E9FFB-161E-410B-A8D5-CE7B49402FAE.png

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

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

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

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

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

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

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

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

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

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

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

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

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

北京幸运28开奖官网 4image

具体代码如下:

2.数据库

北京幸运28开奖官网 5image

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

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

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

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

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

  • 无法创建云开发环境

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

  • 创建环境后无法获取openid

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

  • 云函数如何生成

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

  • 云函数目录不小心删除

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

  • 云函数同步列表失败

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

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

    北京幸运28开奖官网 6image

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

  • 如何使用测试环境

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

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

北京幸运28开奖官网 7image

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

官方云开发文档:Link

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

day14-0914

北京幸运28开奖官网 8image

官方介绍:

  • 存储:在小程序前端直接上传/下载云端文件,在云开发控制台可视化管理
  • 使用小程序appid借助官方云开发模版建立项目

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

  • 开通云开发

本文由北京28官网发布于北京幸运28开奖官网,转载请注明出处:node.js 抓取网页内容(针对微信小程序云开发)【