爬虫就是向目标url发送请求,然后把服务器的相应解析为我们需要的格式。
下面爬取整个页面,也可以根据个人需求爬取自己需要的信息。
准备工作
bash1 2 3 4
| cnpm install request --save
cnpm install cheerio --save
|
编写代码
spider.js1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
| const request = require('request'); const cheerio = require('cheerio'); const readline = require('readline'); const fs = require('fs');
let url; let rl = readline.createInterface({ input: process.stdin, output: process.stdout });
console.log('请输入要爬取的url:');
rl.question('url:', function(res) { url = res; rl.close(); });
rl.on('close', function() { console.log('正在爬取...'); console.time('爬取耗时'); request(url, (err, res) => { if (err) { console.log('创建输出目录错误' + '' + err); } else { console.log('爬取成功!'); console.timeEnd('爬取耗时'); let $ = cheerio.load(res.body); let DOM = $('html').prop('outerHTML'); let now = new Date().getTime(); console.log('正在写入文件...'); console.time('写入耗时'); fs.writeFile('./output/output_'+ now + '.html', DOM, function(err) { if (err !== null) { console.log('写入失败,错误信息:' + err); } else { console.log('写入成功!'); console.timeEnd('写入耗时'); console.log('文件路径:' + __dirname + '/output/output_' + now + '.html'); } }); } }); });
|
运行
页面中引用的静态资源文件还没有爬。
等等再写。