這篇文章主要介紹Node.js爬蟲(chóng)怎樣獲取天氣和每日問(wèn)候,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!
公司主營(yíng)業(yè)務(wù):成都網(wǎng)站制作、網(wǎng)站建設(shè)、移動(dòng)網(wǎng)站開(kāi)發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競(jìng)爭(zhēng)能力。創(chuàng)新互聯(lián)是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開(kāi)放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來(lái)的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來(lái)驚喜。創(chuàng)新互聯(lián)推出溧陽(yáng)免費(fèi)做網(wǎng)站回饋大家。
安裝依賴
安裝node.js,同時(shí)安裝好依賴:
npm install request --save // http請(qǐng)求庫(kù) npm install cheerio --save // 分析html工具 npm install express --save // nodejs web框架
獲取墨跡天氣
地址示例:
東莞 tianqi.moji.com/weather/chi…
廣州 tianqi.moji.com/weather/chi…
深圳 tianqi.moji.com/weather/chi…
可打開(kāi)墨跡天氣網(wǎng)站找到女朋友對(duì)應(yīng)城市修改url地址拼音即可。
查看網(wǎng)頁(yè)結(jié)構(gòu):
下面開(kāi)始提取網(wǎng)頁(yè)天氣信息:
const request = require("request") const cheerio = require("cheerio") const weatherURL = 'https://tianqi.moji.com/weather/china/Guangdong/dongguan' // 獲取墨跡天氣提示信息 function getWeatherTips(url) { return new Promise((resolve,reject)=>{ request(weatherURL,(error,res,body)=>{ if (!error) { let html = res.body || ""; let $ =cheerio.load(html) let temp = $('.wea_weather em').text().trim()+'℃' let desc = $('.wea_weather b').text().trim() let water = $('.wea_about span').text().trim() let win = $('.wea_about em').text().trim() let tips = $('.wea_tips em').text().trim() let words=`今日${city}天氣\n${desc}\n溫度:${temp}\n濕度:${water}\n風(fēng)力:${win}\n${tips}` resolve(words) } else { reject(error) } }) }) }
獲取每日一句
地址:wufazhuce.com/
const greetingURL = 'http://wufazhuce.com/' // 獲取wufazhuce.com每日一句 function getDailyGreeting() { return new Promise((resolve,reject)=>{ request(greetingURL,(error,res,body)=>{ let everyDayWordsList = []; if(!error && res.statusCode==200) { let $ = cheerio.load(res.body.toString()) $('div .fp-one-cita a').each(function(item){ if($(this).text()){ everyDayWordsList.push($(this).text().trim()) } }) let result = everyDayWordsList[0] || '網(wǎng)絡(luò)錯(cuò)誤,獲取每日問(wèn)候失敗!' resolve(result) } else { reject(error) } }) }) }
計(jì)算在一起天數(shù)
// 計(jì)算在一起的日子 function getDiffDate(targetDate) { let date1 = new Date(targetDate); let date2 = new Date(); date1 = new Date(date1.getFullYear(), date1.getMonth(), date1.getDate()); date2 = new Date(date2.getFullYear(), date2.getMonth(), date2.getDate()); const diff = date2.getTime() - date1.getTime(); const diffDate = diff / (24 * 60 * 60 * 1000); return `寶貝,這是我們?cè)谝黄鸬?{diffDate}天` }
接口調(diào)用
var express=require('express'); var app=express(); const api = require('./crawer.js') app.get('/words',async function(req,res){ let dateTips = api.getDiffDate() let weather = await api.getWeatherTips() let words = await api.getDailyGreeting() let str =`${dateTips}\n${weather}\n${words}` res.writeHead(200, {'Content-Type': 'application/json; charset=utf-8'}) res.end(str) }) var server = app.listen(8083, function () { // 啟動(dòng)ip和端口 var port = server.address().port console.log("應(yīng)用實(shí)例,訪問(wèn)地址為 http://%s:%s", port) })
以上是“Node.js爬蟲(chóng)怎樣獲取天氣和每日問(wèn)候”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!