用node.js從零開始去寫一個(gè)簡(jiǎn)單的爬蟲

如果你不會(huì)Python語(yǔ)言饶辙,正好又是一個(gè)node.js小白耳幢,看完這篇文章之后模暗,一定會(huì)覺得受益匪淺禁悠,感受到自己又新get到了一門技能,如何用node.js從零開始去寫一個(gè)簡(jiǎn)單的爬蟲兑宇,十分鐘時(shí)間就能搞定碍侦,步驟其實(shí)很簡(jiǎn)單。node的安裝就不一步步的解釋了隶糕,如果不會(huì)可以自行百度瓷产。在node開大環(huán)境下開始第一步:

1:在d盤新建一個(gè)文件夾WebSpider


圖片.png

2:cmd右鍵以管理員模式打開,進(jìn)入d盤枚驻,cd 進(jìn)入剛剛創(chuàng)建的文件夾里面
cd WebSpider


圖片.png

3:mkdir FirstSpider (創(chuàng)建一個(gè)FirstSpider文件夾)

圖片.png

創(chuàng)建FirstSpider文件夾之后的目錄


圖片.png

4:進(jìn)入剛剛創(chuàng)建的文件夾里面 cd FirstSpider


圖片.png

5: npm init (初始化工程)

此時(shí)需要填寫一些項(xiàng)目信息濒旦,你可以根據(jù)情況填寫,當(dāng)然也可以一路回車再登。


圖片.png

創(chuàng)建完項(xiàng)目后尔邓,會(huì)生成一個(gè)package.json的文件。該文件包含了項(xiàng)目的基本信息锉矢。


圖片.png
圖片.png

6:安裝第三方包(后面程序會(huì)直接調(diào)用包的模塊)

說明:由于http模塊梯嗽、fs模塊都是內(nèi)置的包,因此不需要額外添加沽损。

這里安裝cheerio包灯节,和request包。request 用于發(fā)起http請(qǐng)求
cheerio 用于將下載下來的dom進(jìn)行分析和提取 你可以把它當(dāng)做jQuery來用

在cmd中,cd進(jìn)入cd FirstSpider文件夾显晶,然后執(zhí)行命令:
npm install cheerio –save


圖片.png

安裝完cheerio包后贷岸,繼續(xù)安裝request包, npm install request –save


圖片.png

說明:npm(nodejs package manager)磷雇,nodejs包管理器偿警;
–save的目的是將項(xiàng)目對(duì)該包的依賴寫入到package.json文件中。

如果想要將爬取的數(shù)據(jù)和圖片分類放好唯笙,那就事先建立一個(gè)data和image文件夾準(zhǔn)備著螟蒸。
在FirstSpider文件夾下新建

創(chuàng)建子文件夾data(用于存放所抓取的新聞文本內(nèi)容)
創(chuàng)建子文件夾image(用于存放所抓取的圖片資源)
創(chuàng)建一個(gè)first_spider文件

整個(gè)項(xiàng)目的目錄結(jié)構(gòu)如下圖所示:


圖片.png

7:重點(diǎn)內(nèi)容,打開first_spider崩掘,并一行一行的敲代碼七嫌,如果你不想寫代碼的話,去網(wǎng)站上找一些代碼過來進(jìn)行測(cè)試即可苞慢。

var request = require('request')
var cheerio = require('cheerio')
for(var i = 1;i<4;i++){
  request('http://www.souweixin.com/personal?t=41&p='+i,function(error,response,body){
    if(!error && response.statusCode == 200){
      $ = cheerio.load(body)
      var links = [];
        $(".boldBorder > a").each(function(i,item){
          links.push($(this).attr("href"))
        })
      for(var i=0;i<links.length;i++){
        request('http://www.souweixin.com'+links[i],function(error,response,body){
          if(!error && response.statusCode == 200){
            $ = cheerio.load(body)
            console.log('weixin: '+$('.bold').text()+'   name: '+$('h1').text()+'   desc: '+$('.f18').text());
          }
        })
      }
    }
  })
}

8:運(yùn)行程序诵原,命令很簡(jiǎn)單哦
在cmd命令行下,cd 到你創(chuàng)建工程文件夾FirstSpider下挽放,然后 node first_spider.js 程序就跑起來了绍赛。


圖片.png

9:注意:如果這個(gè)時(shí)候遇見這樣的bug

圖片.png

80端口被占用,這里額外的提一下:
解決端口被占用的問題:http://www.reibang.com/p/a7fc19b0c2f1

找到這些端口辑畦,一個(gè)個(gè)關(guān)閉即可


圖片.png

原文作者:祈澈姑娘
技術(shù)博客:http://www.reibang.com/u/05f416aefbe1
90后前端妹子吗蚌,愛編程,愛運(yùn)營(yíng)纯出,愛折騰蚯妇。歡迎關(guān)注【編程微刊】公眾號(hào),回復(fù)【領(lǐng)取資源】,500G編程學(xué)習(xí)資源干貨免費(fèi)送暂筝。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末箩言,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子乖杠,更是在濱河造成了極大的恐慌分扎,老刑警劉巖澄成,帶你破解...
    沈念sama閱讀 211,123評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件胧洒,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡墨状,警方通過查閱死者的電腦和手機(jī)卫漫,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來肾砂,“玉大人列赎,你說我怎么就攤上這事「淙罚” “怎么了包吝?”我有些...
    開封第一講書人閱讀 156,723評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵饼煞,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我诗越,道長(zhǎng)砖瞧,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,357評(píng)論 1 283
  • 正文 為了忘掉前任嚷狞,我火速辦了婚禮块促,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘床未。我一直安慰自己竭翠,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,412評(píng)論 5 384
  • 文/花漫 我一把揭開白布薇搁。 她就那樣靜靜地躺著斋扰,像睡著了一般。 火紅的嫁衣襯著肌膚如雪啃洋。 梳的紋絲不亂的頭發(fā)上褥实,一...
    開封第一講書人閱讀 49,760評(píng)論 1 289
  • 那天,我揣著相機(jī)與錄音裂允,去河邊找鬼损离。 笑死,一個(gè)胖子當(dāng)著我的面吹牛绝编,可吹牛的內(nèi)容都是我干的僻澎。 我是一名探鬼主播,決...
    沈念sama閱讀 38,904評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼十饥,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼窟勃!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起逗堵,我...
    開封第一講書人閱讀 37,672評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤秉氧,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后蜒秤,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體汁咏,經(jīng)...
    沈念sama閱讀 44,118評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,456評(píng)論 2 325
  • 正文 我和宋清朗相戀三年作媚,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了攘滩。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,599評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡纸泡,死狀恐怖漂问,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤蚤假,帶...
    沈念sama閱讀 34,264評(píng)論 4 328
  • 正文 年R本政府宣布栏饮,位于F島的核電站,受9級(jí)特大地震影響磷仰,放射性物質(zhì)發(fā)生泄漏抡爹。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,857評(píng)論 3 312
  • 文/蒙蒙 一芒划、第九天 我趴在偏房一處隱蔽的房頂上張望冬竟。 院中可真熱鬧,春花似錦民逼、人聲如沸泵殴。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,731評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)笑诅。三九已至,卻和暖如春疮鲫,著一層夾襖步出監(jiān)牢的瞬間吆你,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,956評(píng)論 1 264
  • 我被黑心中介騙來泰國(guó)打工俊犯, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留妇多,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,286評(píng)論 2 360
  • 正文 我出身青樓燕侠,卻偏偏與公主長(zhǎng)得像者祖,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子绢彤,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,465評(píng)論 2 348