博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Nodejs爬虫--抓取豆瓣电影网页数据(下)
阅读量:6269 次
发布时间:2019-06-22

本文共 1901 字,大约阅读时间需要 6 分钟。

接着上篇

本篇主要描述将上次抓取的数据存入mongodb数据库

前提:百度或谷歌mongodb的安装教程,安装本地并成功运行

推荐一款mongodb数据库可视化管理工具:Robomongo。可以加群264591039获取安装包或自行寻找资源

首先用npm安装第三方数据库操作包:mongoose.

关于mongoose详情请查看

npm install --save-dev mongoose

引入mongoose包开始对mongodb进行管理

当前目录下新建一个mongo.js文件方便管理,在该文件中引入相关包:

let mongoose = require('mongoose'),    assert = require('assert');

<!--more-->

获取表构造器Schema并映射mongodb相应的collection

let Schema = mongoose.Schema;let filmSchema = new Schema({       //自定义相应的表数据字段        title: String,        type: String,        directories: String,        scriptwriter: String,        actors: String    });//映射collection并生成model对象用于管理数据表的增删改查//默认是映射到名为films的collection//若自定义表明则:let filmSchema = new Schema({..}, { collection: 'data' });  'data'即为自定义名称let Film = mongoose.model('Film', filmSchema);

连接mongodb数据库并exports Film对象

let db = mongoose.connect('mongodb://127.0.0.1:27017/spider');db.connection.on('error', (err) => {    console.log(`数据库连接失败:${err}`);});db.connection.on('open', () => {    console.log('数据库连接成功');});module.exports = {Film: Film};

在spider.js中引入Film对象并添加入库操作代码

let mongo = require('./mongo');//在请求网页的end函数中添加入库操作xxxx.end((err, res) => {    var $ = cheerio.load(res.text);     //用cheerio获取整个页面DOM对象    var _data = {title:'', type: '', directories: '', scriptwriter: '', actors: ''};    _data.title = $('#content h1 span').text();    _data.directories = $('#info .attrs').eq(0).text();    _data.scriptwriter = $('#info .attrs').eq(1).text();    _data.actors = $('#info .attrs').eq(2).text();    $('span[property="v:genre"]').each(function (index) {        _data.type += ($(this).text() + (index == $('span[property="v:genre"]').length - 1 ? '' : '、'));    });    console.log(_data);    mongo.Film.create(_data, (err, doc) => {                        assert.equal(err, null);                        console.log(doc);                    });});

运行spider.js,并查看数据库中的数据

node spider.js//用上述提到的可视化工具查看数据库是否成功有数据入库

数据库截图

转载地址:http://eyvpa.baihongyu.com/

你可能感兴趣的文章
Skype for Business Server 2015-04-前端服务器-3-安装-管理工具
查看>>
第12章代码《跟老男孩学习Linux运维:Shell编程实战》
查看>>
我们为什么从Python转到go?
查看>>
5.Azure负载均衡(上)
查看>>
轻松精通awk数组企业问题案例
查看>>
26.Azure备份服务器(下)
查看>>
从“网上说的能信么”说开去---学习的思考
查看>>
DHCP 日志分析
查看>>
.NET Micro Framework动态调用C/C++底层代码(原理篇)
查看>>
Windows Server 2012正式版RDS系列⒃
查看>>
Shell脚本之awk篇
查看>>
微软发布Azure Stack硬件需求
查看>>
python socket编程详细介绍
查看>>
Windows Server 2016第三个技术预览版新技术
查看>>
Everything 本地磁盘文件搜索工具下载!
查看>>
Python dict(字典) 详细总结
查看>>
RPF(Reverse Path Forwarding 反向路径转发)技术
查看>>
2016年收到的第一件礼物,被评上微软全球最有价值专家MVP(一)
查看>>
2016中国VR开发者论坛第一期
查看>>
Hyper-V 2016 系列教程5 Hyper-V 服务器基本属性
查看>>