nodeJS爬蟲(完整版)

nodeJs爬蟲

var http = require('http');
var fs = require('fs');
var https = require('https');
var iconv = require('iconv-lite');
var cheerio = require('cheerio');
const request = require('superagent')
require('superagent-charset')(request) // install charset 
var express = require('express');

var url = 'http://price.pcauto.com.cn/shangjia/';
var app = express();

var MongoClient = require('mongodb').MongoClient;
// 數(shù)據(jù)庫cars
var DB_CONN_STR = 'mongodb://localhost:27017/cars'; 
 
http.get(url, function(sres) {
  var html1 = '';
  var chunks = [];

  sres.on('data', function(chunk) {
    chunks.push(chunk);
    html1 += chunk; 
  });

  sres.on('end', function() {
    // 將二進(jìn)制數(shù)據(jù)解碼成 gb2312 編碼數(shù)據(jù)
    var html = iconv.decode(Buffer.concat(chunks), 'gb2312');
    var $ = cheerio.load(html, {decodeEntities: false});
    writeHtml(html);
    var $dts = $('.dl-brand').find('dt');
    var $dds = $('.dl-brand').find('dd');
    var list = [];


    $dds.each(function(index) {
        var $li = $(this);
        var title = '';
        switch (index) {
            case 0:
                title = '合資品牌';
                break;
            case 1:
                title = '自主品牌';
                break;
            case 2:
                title = '進(jìn)口品牌';
                break;
        }
        var $a = $li.find('a');
        var brands = [];
        $a.each(function(index) {
            var $one = $(this);
            brands.push({
                link: $one.attr('href'),
                img: $one.find('img').attr('src'),
                name: $one.find('.name').text()
            })
        })

        list.push({
            title: title,
            list: brands
        })
    })

    console.log('列表數(shù)據(jù)')
    console.log(list)

    MongoClient.connect(DB_CONN_STR, function(err, db) {
        console.log("連接成功!");
        insertData(db, list, function(result) {
            console.log(result);
            db.close();
        });
    });

  });
});

function writeHtml(html) {
    fs.writeFile('index.html', html, function(err) {
        if (err) {
            return console.error(err);
        }
        console.log('寫入數(shù)據(jù)成功!')
    })
}

function insertData (db, data, callback) {
     //連接到表 site
    var collection = db.collection('brand');
    //插入數(shù)據(jù)
    collection.insert(data, function(err, result) { 
        if(err)
        {
            console.log('Error:'+ err);
            return;
        }     
        callback(result);
    });
}


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末普监,一起剝皮案震驚了整個(gè)濱河市贵试,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌凯正,老刑警劉巖毙玻,帶你破解...
    沈念sama閱讀 217,657評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異廊散,居然都是意外死亡桑滩,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,889評論 3 394
  • 文/潘曉璐 我一進(jìn)店門允睹,熙熙樓的掌柜王于貴愁眉苦臉地迎上來运准,“玉大人幌氮,你說我怎么就攤上這事⌒舶模” “怎么了该互?”我有些...
    開封第一講書人閱讀 164,057評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長韭畸。 經(jīng)常有香客問我宇智,道長,這世上最難降的妖魔是什么胰丁? 我笑而不...
    開封第一講書人閱讀 58,509評論 1 293
  • 正文 為了忘掉前任随橘,我火速辦了婚禮,結(jié)果婚禮上隘马,老公的妹妹穿的比我還像新娘太防。我一直安慰自己妻顶,他們只是感情好酸员,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,562評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著讳嘱,像睡著了一般幔嗦。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上沥潭,一...
    開封第一講書人閱讀 51,443評論 1 302
  • 那天邀泉,我揣著相機(jī)與錄音,去河邊找鬼钝鸽。 笑死汇恤,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的拔恰。 我是一名探鬼主播因谎,決...
    沈念sama閱讀 40,251評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼颜懊!你這毒婦竟也來了财岔?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,129評論 0 276
  • 序言:老撾萬榮一對情侶失蹤河爹,失蹤者是張志新(化名)和其女友劉穎匠璧,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體咸这,經(jīng)...
    沈念sama閱讀 45,561評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡夷恍,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,779評論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了媳维。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片裁厅。...
    茶點(diǎn)故事閱讀 39,902評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡冰沙,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出执虹,到底是詐尸還是另有隱情拓挥,我是刑警寧澤,帶...
    沈念sama閱讀 35,621評論 5 345
  • 正文 年R本政府宣布袋励,位于F島的核電站侥啤,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏茬故。R本人自食惡果不足惜盖灸,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,220評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望磺芭。 院中可真熱鬧赁炎,春花似錦、人聲如沸钾腺。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,838評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽放棒。三九已至姻报,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間间螟,已是汗流浹背吴旋。 一陣腳步聲響...
    開封第一講書人閱讀 32,971評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留厢破,地道東北人荣瑟。 一個(gè)月前我還...
    沈念sama閱讀 48,025評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像摩泪,于是被迫代替她去往敵國和親笆焰。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,843評論 2 354

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