Nodejs爬蟲獲取天氣和每日一句

安裝依賴

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

npm install request --save // http請求庫
npm install cheerio --save // 分析html工具
npm install express --save // nodejs web框架

獲取墨跡天氣

地址示例:
東莞 https://tianqi.moji.com/weather/china/Guangdong/dongguan
廣州 https://tianqi.moji.com/weather/china/guangdong/guangzhou
深圳 https://tianqi.moji.com/weather/china/guangdong/shenzhen

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

image

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

image

下面開始提取網(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)
        }      
      })
   })   
}

獲取每日一句

地址:http://wufazhuce.com/

image
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)
})
image
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末骡楼,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子赴肚,更是在濱河造成了極大的恐慌素跺,老刑警劉巖,帶你破解...
    沈念sama閱讀 207,248評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件誉券,死亡現(xiàn)場離奇詭異指厌,居然都是意外死亡,警方通過查閱死者的電腦和手機踊跟,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,681評論 2 381
  • 文/潘曉璐 我一進店門踩验,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人商玫,你說我怎么就攤上這事箕憾。” “怎么了拳昌?”我有些...
    開封第一講書人閱讀 153,443評論 0 344
  • 文/不壞的土叔 我叫張陵袭异,是天一觀的道長。 經(jīng)常有香客問我炬藤,道長御铃,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,475評論 1 279
  • 正文 為了忘掉前任刻像,我火速辦了婚禮畅买,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘细睡。我一直安慰自己谷羞,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 64,458評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著湃缎,像睡著了一般犀填。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上嗓违,一...
    開封第一講書人閱讀 49,185評論 1 284
  • 那天九巡,我揣著相機與錄音,去河邊找鬼蹂季。 笑死冕广,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的偿洁。 我是一名探鬼主播撒汉,決...
    沈念sama閱讀 38,451評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼涕滋!你這毒婦竟也來了睬辐?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,112評論 0 261
  • 序言:老撾萬榮一對情侶失蹤宾肺,失蹤者是張志新(化名)和其女友劉穎溯饵,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體锨用,經(jīng)...
    沈念sama閱讀 43,609評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,083評論 2 325
  • 正文 我和宋清朗相戀三年黔酥,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片跪者。...
    茶點故事閱讀 38,163評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖渣玲,靈堂內(nèi)的尸體忽然破棺而出逗概,到底是詐尸還是另有隱情,我是刑警寧澤忘衍,帶...
    沈念sama閱讀 33,803評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站枚钓,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏搀捷。R本人自食惡果不足惜星掰,卻給世界環(huán)境...
    茶點故事閱讀 39,357評論 3 307
  • 文/蒙蒙 一多望、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧氢烘,春花似錦怀偷、人聲如沸播玖。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,357評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至木西,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背吗讶。 一陣腳步聲響...
    開封第一講書人閱讀 31,590評論 1 261
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留照皆,地道東北人。 一個月前我還...
    沈念sama閱讀 45,636評論 2 355
  • 正文 我出身青樓昭卓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親候醒。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,925評論 2 344

推薦閱讀更多精彩內(nèi)容