欢迎关注我的微信公众号 "前端攻城",我不定期会更新一些内容。
我就直接上代码了:)
var http = require('http');
var cheerio = require('cheerio');
var url = "http://www.baidu.com"; //初始url
function fetchPage(x) { //封装了一层函数
startRequest(x);
}
function startRequest(x) {
//采用http模块向服务器发起一次get请求
http.get(x, function (res) {
var html = ''; //用来存储请求网页的整个html内容
var titles = [];
res.setEncoding('utf-8'); //防止中文乱码
//监听data事件,每次取一块数据
res.on('data', function (chunk) {
html += chunk;
});
//监听end事件,如果整个网页内容的html都获取完毕,就执行回调函数
res.on('end', function () {
// console.log(html)
var $ = cheerio.load(html, {decodeEntities: false});
//采用cheerio模块解析 html
var aa = "";
aa += $('title').html().trim();
console.log(aa);
});
}).on('error', function (err) {
console.log(err);
});
}
fetchPage(url); //主程序开始运行
我只是简单使用了 http 模块,以及一个第三方的 cheerio 模块(node 中的jquery)用来解析html。如果你需要一个更复杂的爬虫,可以自己引入一些第三方模块,实现模拟点击、下载图片等功能。