日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

微信小程序云開發(fā),不借助額外服務(wù)端爬蟲實(shí)現(xiàn)小說閱讀小程序

 

最近才注意到微信小程序增加了個(gè)云開發(fā),手上項(xiàng)目不多就趕緊試試手,新增加云函數(shù)和云數(shù)據(jù)庫;云函數(shù)就類似于服務(wù)端,云函數(shù)其實(shí)就是封裝了mongdb,不過小程序js中可以直接操作數(shù)據(jù)庫,只是與云函數(shù)對的操作權(quán)限不同

微信小程序云開發(fā),不借助額外服務(wù)端爬蟲實(shí)現(xiàn)小說閱讀小程序

 

云控制臺:

微信小程序云開發(fā),不借助額外服務(wù)端爬蟲實(shí)現(xiàn)小說閱讀小程序

 

開始我的項(xiàng)目,我利用云函數(shù)中科可以使用node模塊,于是就試試能不能寫個(gè)爬蟲小程序

微信小程序云開發(fā),不借助額外服務(wù)端爬蟲實(shí)現(xiàn)小說閱讀小程序

 

const cheerio = require("cheerio"); //進(jìn)入cheerio模塊

let charset = require('superagent-charset'); //解決亂碼問題:

let superagent = require('superagent'); //發(fā)起請求

charset(superagent);

cloud.init()

// 云函數(shù)入口函數(shù)

exports.main = async (event, context) => {

let servceUrl = "https://xxxx/"

const result = await superagent

.get(servceUrl)

.charset('gb2312'); //取決于網(wǎng)頁的編碼方式

const data = result.text || '';

const $ = cheerio.load(result.text);

let hotList = $('.hot').find('.image');

let classifyList = $('.block');

let hotData = [];//熱榜

let classifyData = [];//分類推薦

for (let i = 0; i < hotList.length;i++){

let obj = {};

obj['url'] = $(hotList[i]).find('a').attr('href');

obj['imgurl'] = $(hotList[i]).find('img').attr('src');

obj['name'] = $(hotList[i]).find('img').attr('alt');

obj['autho'] = $(hotList[i]).next().find('dt').find('span').text();

obj['detail'] = $(hotList[i]).next().find('dd').text();

hotData.push(obj)

}

for (let i = 0; i < classifyList.length; i++) {

let obj = {};

let childData = []

let childDom = $(classifyList[i]).find('.lis').find('li');

for (let j = 0; j < childDom.length;j++){

let chilObj = {};

chilObj['name'] = $(childDom[j]).find('.s2').find('a').text();

chilObj['url'] = $(childDom[j]).find('.s2').find('a').attr('href');

chilObj['autho'] = $(childDom[j]).find('.s3').text();

childData.push(chilObj);

}

obj['classifyList'] = $(classifyList[i]).find('h2').text();//類別名稱

// obj['childDom'] = childDom.length;

obj['data'] = childData;

classifyData.push(obj)

}

return {

classifyData,

hotData

};

}

果然是沒問題的,不過中間需要注意開始npm的構(gòu)建,還可以引入ui,推薦vantui,基本功能都有,中間由于有些編碼問題做了一些處理,上面是我云函數(shù)的代碼,下面是如何調(diào)用云函數(shù):

微信小程序云開發(fā),不借助額外服務(wù)端爬蟲實(shí)現(xiàn)小說閱讀小程序

 

主要代碼: wx.cloud.callFunction({

name:'getList',

data:{}

}).then(res=>{

wx.hideLoading ();

console.log(res.result);

const result = res.result || {};

this.setData({

hotdata: result.hotData,

classtyf: result.classifyData

})

}).catch(err=>{

wx.hideLoading ();

console.log(err)})

},

中間還涉及到閱讀記錄的保存,于是我簡單實(shí)用了云數(shù)據(jù)庫:

微信小程序云開發(fā),不借助額外服務(wù)端爬蟲實(shí)現(xiàn)小說閱讀小程序

 

代碼簡單示意,文檔里面都有哈,我用到的兩張表

微信小程序云開發(fā),不借助額外服務(wù)端爬蟲實(shí)現(xiàn)小說閱讀小程序

 

今天分享到此。

分享到:
標(biāo)簽:程序 微信小
用戶無頭像

網(wǎng)友整理

注冊時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運(yùn)動步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績評定2018-06-03

通用課目體育訓(xùn)練成績評定