基於Koa2和superagent實現的英語四六級成績查詢系統,同時提供免費API接口

koa2-cet

前言

可能不少人都已經寫過爬蟲了,可是不必定都知道superagent這個爬蟲利器,寫這篇文章的目的是經過一個具體項目,推薦你們之後寫爬蟲的時候能夠用用superagent,真的超級好用。前端

介紹

這是一個基於Koa2和superagent實現的英語四六級成績查詢系統,項目使用superagent爬取學信網的數據,而後使用cheerio解析數據,最後將爬取到的結果以JSON或者JSONP的方式返回給前臺。git

預覽

在線預覽地址: https://cet.lenshen.com
源碼:https://github.com/lensh/koa2...github

測試用戶:
姓名:汪磊
准考證號:360021162100112ajax

技術棧

Angular:實現前端頁面構建
Koa2:實現服務端具體業務邏輯
ES六、ES七、ES8:服務端使用ES6語法,promise/async/await 處理異步
superagent:爬蟲的核心,進行模擬請求
cheerio:解析DOM結構,爬取須要的數據
cors:服務端返回數據時作了cors設置,容許跨域
jsonp:支持JSONP請求,客戶端須要傳入回調函數名稱
pm2:服務端使用pm2部署,常駐進程,比forever好用得多(https://github.com/Unitech/pm2json

API接口

本系統免費提供API接口,具體接口以下所示:api

URL: https://cet.lenshen.com/api/search?user=姓名&number=准考證號
參數說明:
    user  姓名
    number  准考證號
請求方式: GET
請求成功返回json:
{ 
    "code":200,
    "message":"查詢成功",
    "data":{ 
          "name":"張三",   //姓名
          "school":"南昌大學",  //學校
          "type":"英語六級",  //考試類別
          "number":"360021162347654",  //准考證號
          "total":"530",   //總分
          "listen":"170",   //聽力
          "read":"200",  //閱讀
          "writing":"160"  //寫做和翻譯
    }
}
請求失敗返回json:
{ 
    "code":400,
    "message":"查詢失敗,請檢查你的信息是否無誤"
}

注意:以上接口可使用後臺代理請求數據,也可使用ajax請求數據(由於設置了cors)跨域

若是使用JSONP,則須要在url裏傳入callback:promise

URL:https://cet.lenshen.com/api/search?callback=cb&&number=准考證號&user=姓名
參數說明:  
    callback  回調函數名稱
    user  姓名 
    number  准考證號
請求方式: GET
請求成功返回jsonp:
cb({
    "code":200,
    "message":"查詢成功",
    "data":{ 
          "name":"張三",   //姓名
          "school":"南昌大學",  //學校
          "type":"英語六級",  //考試類別
          "number":"360021162347654",  //准考證號
          "total":"530",   //總分
          "listen":"170",   //聽力
          "read":"200",  //閱讀
          "writing":"160"  //寫做和翻譯
    }
})
請求失敗返回jsonp:
cb({ 
    "code":400,
    "message":"查詢失敗,請檢查你的信息是否無誤"
})

最後

若是以爲這個項目還不錯的話,那就絕不吝嗇地給個star吧。cors

相關文章
相關標籤/搜索