Node.js爬虫如何获取天气和每日问候详解
程序员文章站
2022-07-05 12:12:04
安装依赖
安装node.js,同时安装好依赖:
npm install request --save // http请求库
npm install c...
安装依赖
安装node.js,同时安装好依赖:
npm install request --save // http请求库 npm install cheerio --save // 分析html工具 npm install express --save // nodejs web框架
获取墨迹天气
地址示例:
东莞 tianqi.moji.com/weather/chi…
广州 …
深圳 …
可打开墨迹天气网站找到女朋友对应城市修改url地址拼音即可。
查看网页结构:
下面开始提取网页天气信息:
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风力:${win}\n${tips}` resolve(words) } else { reject(error) } }) }) }
获取每日一句
地址:
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] || '网络错误,获取每日问候失败!' resolve(result) } else { reject(error) } }) }) }
计算在一起天数
// 计算在一起的日子 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("应用实例,访问地址为 http://%s:%s", port) })
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对的支持。