国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

Node.js爬蟲如何獲取天氣和每日問候詳解

2019-11-19 10:58:36
字體:
供稿:網(wǎng)友

安裝依賴

安裝node.js,同時安裝好依賴:

npm install request --save // http請求庫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

可打開墨跡天氣網(wǎng)站找到女朋友對應(yīng)城市修改url地址拼音即可。

查看網(wǎng)頁結(jié)構(gòu):

下面開始提取網(wǎng)頁天氣信息:

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ò)錯誤,獲取每日問候失??!' 			resolve(result)  		} else { 			reject(error)				 		} 	}) })}

計算在一起天數(shù)

// 計算在一起的日子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 `寶貝,這是我們在一起的${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 () { // 啟動ip和端口 var port = server.address().port console.log("應(yīng)用實例,訪問地址為 http://%s:%s", port)})

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,謝謝大家對武林網(wǎng)的支持。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 宾川县| 仙桃市| 安图县| 淄博市| 浮梁县| 平塘县| 惠来县| 德庆县| 屯门区| 淮北市| 哈密市| 淅川县| 西畴县| 永寿县| 宣化县| 库车县| 晋宁县| 定南县| 左云县| 睢宁县| 清河县| 兰考县| 行唐县| 奇台县| 昭通市| 遂平县| 绥阳县| 普陀区| 通道| 浮梁县| 平塘县| 当雄县| 砀山县| 当雄县| 贵州省| 石楼县| 阳高县| 哈巴河县| 韩城市| 华容县| 阜新|