node.js 爬虫初阶入门
2020-02-02 03:14
806 查看
第一步,下载包superagent,cheerio
npm i cheerio //-----cheerio是nodejs的抓取页面模块,为服务器特别定制的,快速、灵活、实施的jQuery核心实现。适合各种Web爬虫程序。相当于node.js中的jQuery npm i superagent //-----superagent 是一个轻量的,渐进式的ajax api,可读性好,学习曲线低,内部依赖nodejs原生的请求api,适用于nodejs环境下
第二步,在index.js中引入包
var cheerio = require('cheerio'); var superagent = require('superagent');
第三步,代码整理
superagent.get('https://tieba.baidu.com/index.html') .end(function (err, sres) { if (err) { return next(err); } /** *这里的sres.text就是爬取页面的html,可以在下方打印 */ console.log('页面的html:', sres.text) /** *cheerio也就是nodejs下的jQuery 将整个文档包装成一个集合,定义一个变量$接收 */ var $ = cheerio.load(sres.text); var items = []; /** * 可以先看看页面结构,找出你想爬取的数据,餐后操作dom取得数据 */ $('.directory-wraper').find('a').each(function (idx, element) { var $element = $(element); /** * 拼装数据 */ items.push({ title: $element.title, href: $element.attr('href') }); //这里的items就是我们要的数据 }); });
第四步:导出
//这里我们要用到fs进行导出 //引入fs var fs = require('fs') //调用fs writeFile方法 写入数据, 文件不存在会自动创建 fs.writeFile(路径及文件名,写入的数据,回调函数) fs.writeFile('D:/test2.txt', JSON.stringify(items), function (err) { if (err) throw err; console.log('创建文件成功222'); });
最后的代码汇总
superagent.get('https://tieba.baidu.com/index.html') .end(function (err, sres) { if (err) { return next(err); } // console.log('页面的html:', sres.text) var $ = cheerio.load(sres.text); var items = []; $('.directory-wraper').find('a').each(function (idx, element) { var $element = $(element); items.push({ title: $element.title, href: $element.attr('href') }); }); //删除文件 fs.unlink('D:/test2.txt',function(err){ try{ if (err) throw err; // 写入数据, 文件不存在会自动创建 fs.writeFile('D:/test2.txt', JSON.stringify(items), function (err) { if (err) throw err; console.log('创建文件成功111'); }); }catch(e){ // 写入数据, 文件不存在会自动创建 fs.writeFile('D:/test2.txt', JSON.stringify(items), function (err) { if (err) throw err; console.log('创建文件成功222'); }); } console.log('删除文件成功!!') })
总结
思路:找到爬取目标网页,找到网页需要爬取的数据,发现规律,先用superagent得到网页,再导入cheerio,按照找出的规律循环出数据,进行拼装,再导出
转载于:https://www.cnblogs.com/yzyh/p/9957688.html
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- Node.JS入门到实战_网络爬虫{H5公开课}
- Node.js入门:模块机制
- Node.js 爬虫批量下载美剧 from 人人影视 HR-HDTV
- node.js入门
- Node.js-入门四--url处理
- Node.js 初学者的入门资源汇总
- Node.js从入门到实战(一)Intellj Idea 2017下的第一个Node.js工程
- 针对 Node.js 初学者的入门资源汇总
- Node.js 爬虫批量下载美剧 from 人人影视 HR-HDTV
- (原创)node.js入门之一:express简单服务器搭建-Mac环境开发
- Bower-node.js界的资源管理者 入门
- Node.js、express、mongodb 入门(基于easyui datagrid增删改查)
- Node.js 从入门到茫然系列——入门篇
- Node入门二:使用webstorm运行node.js
- node.js 学习笔记003 :使用superagent和cheerio实现简单网页爬虫
- Node.js从入门到实战(三)Npm使用介绍
- Gulp-Node.js界的Jenkins 入门
- node.js入门-vs code 开发node.js程序
- node.js 入门指导
- 创业笔记-Node.js入门之阻塞与非阻塞