nodejs 30行代碼 爬豆瓣電影數據

Paste_Image.png

用nodejs 寫爬蟲

關鍵模塊:cheerio、http,request。
consonl.log() 出來的數據

Paste_Image.png

首先安裝相關的模塊:

//我用了某寶的鏡像安裝     原來是  npm,-g 可以根據自己情況是全局按裝還是局域安裝
cnpm install -g jquery

cnpm install -g cheerio

cnpm install request

cnpm install http
......

根據你需要用的的模塊安裝
代碼如下:


// 新建一個對象
var MyUtil = function () {
};
// var $ = require('../node_modules/jQuery');
var request = require('request');
// 用于 保存body的html數據
var bodtTemp;
MyUtil.prototype.get=function(url,callback){
    // console.log("MyUtil.prototype") // 打印
    request(url, function (error, response, body) {
      if (!error && response.statusCode == 200) {
        // console.log(body) // 打印目標頁面
        console.log("request ");
        // 用臨時變量保存起來請求回來的body數據
        bodtTemp=body;

        var movie={}  
        // movie.name = $(body).find('span[property="v:itemreviewed"]').text();
        // movie.director = $(body).find('#info span:nth-child(1) a').text();
      }
    })
}
// console.log(movie);
//獲取目標網頁的數據
var temp = new MyUtil();
var httpUrl='https://movie.douban.com/subject/25921812/?tag=%E7%83%AD%E9%97%A8&from=gaia_video';
// var httpUrl='http://movie.douban.com/subject/1152952';
temp.get(httpUrl);
console.log('bodtTemp is '+bodtTemp);
// 開啟自己的http服務器
var http = require('http')
http.createServer(function(req,res){
    res.writeHead(200,{'Content-Type':'text/html'});
    // res.write(bodtTemp);
    let cheerio = require('cheerio')
    let $ = cheerio.load(bodtTemp)
    // $('h2.title').text('Hello there!')
    // $('h2').addClass('welcome')
    // $('#db-nav-movie .nav-logo a').text("哈哈")
    // $("#dale_movie_subject_bottom_super_banner_frame").remove();
    // 移除  id 里面的內容
    // $("#footer").remove();
    console.log($('#info').text());
    // $.html()
    // console.log($.html());
    res.write($.html());
    // res.end('<p>結束</p>');
    res.end();
}).listen(5858);

保存為index.js 文件,切換到 你的文件路徑,用node 命令打開:
如:

node index.js

瀏覽器打開

http://127.0.0.1:5858/

**記得要打開瀏覽器訪問地址才能看到控制臺的數據。

本文為了更好閱讀以及新手可以直接執行,提高新手興趣,故把所有可執行代碼直接放一個文件,詳細以及一些測試也有備注。嘗試去修改一下要爬的鏈接以及代碼吧,一切都是實踐中的出效果。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,948評論 18 139
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,349評論 25 708
  • 《裕語言》速成開發手冊3.0 官方用戶交流:iApp開發交流(1) 239547050iApp開發交流(2) 10...
    葉染柒丶閱讀 27,829評論 5 19
  • 這兩天,感受到了無與倫比的愛,這份來自Janet老師的愛,讓我打開了自己的內心,也感受到了,接納自己的模樣,不批判...
    楊黎黎Lily閱讀 183評論 0 1
  • 就在此刻,同時在二十二個村莊中,我可憐的包法利夫人正在忍受苦難,傷心飲泣。——福樓拜 愛情究竟為何物,它又有怎樣的...
    南方有咸魚閱讀 1,487評論 4 9