Serverless实战驾校小程序【考题练习】四

栏目: 数据库 · 发布时间: 6年前

内容简介:由于没有数据,这次需要拿一些测试数据放到数据库。 这里想到本地采集,大家可以随意用任何后端语言,Python,PHP,Golang,Java,nodejs等等, 这里我就不用其他语言,使用接近JavaScript语法的,nodejs,采集后生成CSV文件。由于数据库,标题title是一个单独字段,这里先把title取出来。这里的数据[1]就是标题数据

Serverless实战驾校小程序【考题练习】四

由于没有数据,这次需要拿一些测试数据放到数据库。 这里想到本地采集,大家可以随意用任何后端语言,Python,PHP,Golang,Java,nodejs等等, 这里我就不用其他语言,使用接近JavaScript语法的,nodejs,采集后生成CSV文件。

主要用到三个库:

  1. 网络库
  2. 解析库
  3. 文件库

这里找到一个采集的地址:

http://www.jiakao.com/cnty/web/km1_tc_new.php?q=1

1. 选择Table 打印这效果

let  table = $('table');

         table.each(function (index, item) {
          let  x = $(this).text();   
          console.log(x)
Serverless实战驾校小程序【考题练习】四

选择

2.提取标题

由于数据库,标题title是一个单独字段,这里先把title取出来。

let table = $('table');

      table.each(function (index, item) {
        let x = $(this).find("tr>td").eq(0).text();
        let t = x.split('\n\t');
        console.log(t)
      });
Serverless实战驾校小程序【考题练习】四

image.png

这里的数据[1]就是标题数据

3. 提取题目内容

Serverless实战驾校小程序【考题练习】四

image.png

这里不细说了,后面我会放上代码,大家自己看。 无非就是拿到A、b、c、d结果,放到一个对象里面,跟导入的格式一致就行。

4.完成导入

Bmob控制台导入CSV,导入后,效果如下。

Serverless实战驾校小程序【考题练习】四

image.png

小程序里面,我们测试下。

Serverless实战驾校小程序【考题练习】四

image.png

放代码

let http = require('http');
let fs = require('fs');
let cheerio = require('cheerio');
let request = require('request');
let iconv = require('iconv-lite');
let i = 0;
let url = "http://www.jiakao.com/cnty/web/km1_tc_new.php?q=1";
//初始url 

function fetchPage (x) {     //封装了一层函数
  startRequest(x);
}


function startRequest (x) {
  //采用http模块向服务器发起一次get请求      
  http.get(x, function (res) {
    let html = '';        //用来存储请求网页的整个html内容
    let titles = [];
    res.setEncoding('binary'); //防止中文乱码

    //监听data事件,每次取一块数据
    res.on('data', function (chunk) {

      html += chunk;
    });
    //监听end事件,如果整个网页内容的html都获取完毕,就执行回调函数
    res.on('end', function () {
      html = iconv.decode(html, 'gb2312');

      let $ = cheerio.load(html); //采用cheerio模块解析html

      let table = $('table');
      console.log('help,choseList,title,video,type,bType,bModels,bSubjects,pic')
      table.each(function (index, item) {


        let t;
        let d;

        let tArr = [];
        let choseList = [] //{""item"":""6个月""}

        $(this).find("tr>td").each(function (i, items) {
          // t = $(this).eq(0).text().split('\n\t');
          t = $(this).text().split('\n\t');
          if (i == 0) {
            tArr.push(t[1])
          }
          d = $(this).text().trim()

          if (i > 0 && i < 6) {
            if (d.indexOf('A') != -1 || d.indexOf('B') != -1 || d.indexOf('C') != -1 || d.indexOf('D') != -1) {

              let answerStr, answerArr;
              // 获取正确答案
              let okStr = $(this).parent().attr('onclick')
              if (okStr != undefined) {
                answerStr = okStr.substr(25, 3)
                answerArr = answerStr.split(',')
              }


              d = d.split('、');

              if (answerArr[0] == answerArr[1]) {
                choseList.push({ "\"isChose\"": true, "\"item\"": "\"" + d[1] + "\"" })
              } else {
                choseList.push({ "\"item\"": "\"" + d[1] + "\"" })
              }
            }

          }


        })

        console.log(`,"${JSON.stringify(choseList)}",${tArr},,1,413405afba,1,1,`)

      });
    })


  }).on('error', function (err) {
    console.log(err);
  });

}

fetchPage(url);      //主程序开始运行

总结:

Bmob数据库支持CSV导入, 我们把采集到的数据输出为一个CSV即可,然后后台点击导入,采集到数据后,进行处理,分四步。

  1. 拿到标题
  2. 拿到结果
  3. 分析出正确答案
  4. 整理数据格式导出CSV

由于这里100题只是为了做Demo,时间第一,并没有采集图片,如果正式上线,还需要采集图片并上传。时间关系,这一节就到这,有问题可以在下面评论。

大家想学习更多的云服务开发, 可以加入Bmob的交流群:群号:273080081


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Data Structures and Algorithm Analysis in Java

Data Structures and Algorithm Analysis in Java

Mark A. Weiss / Pearson / 2006-3-3 / USD 143.00

As the speed and power of computers increases, so does the need for effective programming and algorithm analysis. By approaching these skills in tandem, Mark Allen Weiss teaches readers to develop wel......一起来看看 《Data Structures and Algorithm Analysis in Java》 这本书的介绍吧!

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具