如何用Node.js编写爬虫,精准获取特定地点的每日天气及个性化问候?

2026-04-08 21:151阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计514个文字,预计阅读时间需要3分钟。

如何用Node.js编写爬虫,精准获取特定地点的每日天气及个性化问候?

安装依赖:安装node.js,同时安装好依赖:npm install request --save // HTTP请求库 npm install cheerio --save // 分析HTML工具 npm install express --save // Node.js Web框架 获取天气信息示例:东兴 tianqi.moj

安装依赖

安装node.js,同时安装好依赖:

npm install request --save // 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风力:${win}\n${tips}` resolve(words) } else { reject(error) } }) }) }

获取每日一句

地址:wufazhuce.com/

const greetingURL = '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] || '网络错误,获取每日问候失败!' resolve(result) } else { reject(error) } }) }) }

计算在一起天数

如何用Node.js编写爬虫,精准获取特定地点的每日天气及个性化问候?

// 计算在一起的日子 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}天` }

接口调用

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("应用实例,访问地址为 %s:%s", port) })

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对易盾网络的支持。

本文共计514个文字,预计阅读时间需要3分钟。

如何用Node.js编写爬虫,精准获取特定地点的每日天气及个性化问候?

安装依赖:安装node.js,同时安装好依赖:npm install request --save // HTTP请求库 npm install cheerio --save // 分析HTML工具 npm install express --save // Node.js Web框架 获取天气信息示例:东兴 tianqi.moj

安装依赖

安装node.js,同时安装好依赖:

npm install request --save // 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风力:${win}\n${tips}` resolve(words) } else { reject(error) } }) }) }

获取每日一句

地址:wufazhuce.com/

const greetingURL = '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] || '网络错误,获取每日问候失败!' resolve(result) } else { reject(error) } }) }) }

计算在一起天数

如何用Node.js编写爬虫,精准获取特定地点的每日天气及个性化问候?

// 计算在一起的日子 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}天` }

接口调用

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("应用实例,访问地址为 %s:%s", port) })

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对易盾网络的支持。