The Third day

scene.png

what I do

周六的天空依然很藍(lán)羡棵,騎著腳踏車壹若,約上幾個(gè)好友,繞著大明湖畔皂冰,尋找夏天的雨荷店展。
一臺(tái)電腦、一張辦公桌灼擂、一個(gè)板凳壁查,我們依然在敲著鍵盤
說(shuō)說(shuō)今天的任務(wù):node去寫爬蟲,獲取數(shù)據(jù)

思路

獲取公共網(wǎng)站的頁(yè)面數(shù)據(jù)
1剔应、發(fā)起http請(qǐng)求
2睡腿、使用cheerio模塊,通過對(duì)DOM進(jìn)行分析峻贮,獲取json數(shù)據(jù)

code
    const http = require('http');
    const cheerio = require('cheerio');       //模仿jq的模塊
    const express = require('express');
    const url = '百度糯米'
    http.get(url,(res) => {
        var chunks = [];
        var size = 0;

        res.on('data',(ev) => {
            /*返回的二進(jìn)制 暫存到數(shù)組中*/
            chunks.push(ev);
            size += ev.length;
        })
        res.on('end',() => {
            /*保存的二進(jìn)制 保存到buffer流中 最后轉(zhuǎn)為二進(jìn)制輸出*/
            var data = Buffer.concat(chunks, size);
            var html = data.toString();
            /*ending html 在這里已經(jīng)獲取*/
            var $ = cheerio.load(html);
            var arr = [];
              /*遍歷所有列表*/
            $('.j-card').each(function () {
                var obj = {},$this = $(this);
                obj.url = $this.find('.borderbox img').attr('data-original');
                obj.title = $this.find('.title').text();
                obj.price = $this.find('.price').text();
                arr.push(obj);
            })
            //生成arr返回給前端
            reponse.json({
                arr:arr
            });
        })
    }).on('error',(e)=>{
        console.log(e);
    })
知識(shí)點(diǎn)延伸

1 席怪、const 定義常量、var 定義變量
2 纤控、在計(jì)算機(jī)內(nèi)部 字符串 占兩個(gè)字節(jié) 挂捻, 數(shù)字占一個(gè)字節(jié) ,但是js對(duì)于字符串的處理相當(dāng)友好 幫我們解決了這個(gè)問題

buffer是什么
  • buffer又被成為臨時(shí)貯存區(qū)船万,暫時(shí)存放輸入輸出數(shù)據(jù)的一段內(nèi)存
  • js語(yǔ)言只有字符串?dāng)?shù)據(jù)類型刻撒,不存在二進(jìn)制數(shù)據(jù)類型骨田,故node提供了與string對(duì)等的構(gòu)造函數(shù)buffer,來(lái)對(duì)二進(jìn)制進(jìn)行操作
  • js對(duì)字符串處理十分友好声怔,node中需要處理網(wǎng)絡(luò)協(xié)議态贤、操作數(shù)據(jù)庫(kù)、處理圖片醋火、文件上傳悠汽,還需要處理大量二進(jìn)制數(shù)據(jù),自帶字符串遠(yuǎn)遠(yuǎn)不能滿足這些要求芥驳,因此buffer應(yīng)運(yùn)而生
  • buffer是一個(gè)典型的c++ 與 js結(jié)合的模塊柿冲,性能部分用c++實(shí)現(xiàn),非性能部分用js實(shí)現(xiàn)
  • node 在啟動(dòng)的時(shí)候 buffer已經(jīng)被加入到內(nèi)存中了兆旬,并存近全局對(duì)象假抄,因此無(wú)需require
  • buffer對(duì)象:類似于數(shù)組,元素時(shí)16進(jìn)制的兩位數(shù)
  • buffer對(duì)象的內(nèi)存分配并不是在V8的堆內(nèi)存中丽猬,而是在node的c++層面申請(qǐng)的內(nèi)存
  • buffer可以與字符串相互轉(zhuǎn)換 utf-8 base64 ASCII等 不能處理GBK 等歷史遺留編碼

http://www.runoob.com/nodejs/nodejs-buffer.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末慨亲,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子宝鼓,更是在濱河造成了極大的恐慌刑棵,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,454評(píng)論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件愚铡,死亡現(xiàn)場(chǎng)離奇詭異蛉签,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)沥寥,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,553評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門碍舍,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人邑雅,你說(shuō)我怎么就攤上這事片橡。” “怎么了淮野?”我有些...
    開封第一講書人閱讀 157,921評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵捧书,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我骤星,道長(zhǎng)经瓷,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,648評(píng)論 1 284
  • 正文 為了忘掉前任洞难,我火速辦了婚禮舆吮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己色冀,他們只是感情好潭袱,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,770評(píng)論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著锋恬,像睡著了一般敌卓。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上伶氢,一...
    開封第一講書人閱讀 49,950評(píng)論 1 291
  • 那天,我揣著相機(jī)與錄音瘪吏,去河邊找鬼癣防。 笑死,一個(gè)胖子當(dāng)著我的面吹牛掌眠,可吹牛的內(nèi)容都是我干的蕾盯。 我是一名探鬼主播,決...
    沈念sama閱讀 39,090評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼蓝丙,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼级遭!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起渺尘,我...
    開封第一講書人閱讀 37,817評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤挫鸽,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后鸥跟,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體丢郊,經(jīng)...
    沈念sama閱讀 44,275評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,592評(píng)論 2 327
  • 正文 我和宋清朗相戀三年医咨,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了枫匾。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,724評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡拟淮,死狀恐怖干茉,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情很泊,我是刑警寧澤角虫,帶...
    沈念sama閱讀 34,409評(píng)論 4 333
  • 正文 年R本政府宣布,位于F島的核電站委造,受9級(jí)特大地震影響上遥,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜争涌,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,052評(píng)論 3 316
  • 文/蒙蒙 一粉楚、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦模软、人聲如沸伟骨。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,815評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)携狭。三九已至,卻和暖如春回俐,著一層夾襖步出監(jiān)牢的瞬間逛腿,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,043評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工仅颇, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留单默,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,503評(píng)論 2 361
  • 正文 我出身青樓忘瓦,卻偏偏與公主長(zhǎng)得像搁廓,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子耕皮,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,627評(píng)論 2 350

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

  • https://nodejs.org/api/documentation.html 工具模塊 Assert 測(cè)試 ...
    KeKeMars閱讀 6,313評(píng)論 0 6
  • Node.js是目前非尘惩桑火熱的技術(shù),但是它的誕生經(jīng)歷卻很奇特凌停。 眾所周知粱年,在Netscape設(shè)計(jì)出JavaScri...
    w_zhuan閱讀 3,610評(píng)論 2 41
  • Node.js是目前非常火熱的技術(shù)罚拟,但是它的誕生經(jīng)歷卻很奇特逼泣。 眾所周知,在Netscape設(shè)計(jì)出JavaScri...
    Myselfyan閱讀 4,066評(píng)論 2 58
  • 即使在我寫下標(biāo)題的當(dāng)下舟舒,也還是一個(gè)矜持的傳統(tǒng)女人拉庶! 從小便聽著“女生就是被追的、太過主動(dòng)會(huì)被男人覺得廉價(jià)”之類的言...
    一只大熊正向你走來(lái)閱讀 223評(píng)論 0 0
  • 朋友拜托我皆尔,下午在她家等鐘點(diǎn)工阿姨來(lái)打掃衛(wèi)生,于是币励,我一下午都在朋友家慷蠕。 阿姨到來(lái)后,我忙我的事食呻,她忙她的流炕,不知不...
    妙丫丫POI閱讀 149評(píng)論 2 2