Node.js爬虫如何获取天气和每日问候详解

2020-06-17 06:58:05易采站长站整理

安装依赖

安装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…

可打开墨迹天气网站找到女朋友对应城市修改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)
}
})
})
}

获取每日一句

地址: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] || '网络错误,获取每日问候失败!'