##用nodejs 写爬虫 关键模块:cheerio、http,request。 consonl.log() 出来的数据
首先安装相关的模块:
//我用了某宝的镜像安装 原来是 npm,-g 可以根据自己情况是全局按装还是局域安装
cnpm install -g jquerycnpm install -g cheeriocnpm install requestcnpm 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/
复制代码
**记得要打开浏览器访问地址才能看到控制台的数据。 ###本文为了更好阅读以及新手可以直接执行,提高新手兴趣,故把所有可执行代码直接放一个文件,详细以及一些测试也有备注。尝试去修改一下要爬的链接以及代码吧,一切都是实践中的出效果。