未加星标

Scrapy定向爬虫教程(四)――数据存入MongoDB

字体大小 | |
[开发(python) 所属分类 开发(python) | 发布者 店小二03 | 时间 2016 | 作者 红领巾 ] 0人收藏点击收藏

这一小结我们共同学习把Scrapy爬取到的数据存储到MongoDB数据库中。其中包括以下知识:

linux下MongoDB的安装 pymongo的安装 Scrapy + pymongo Robmongo的下载使用

我已将本节内容的源码传至 本项目 的 useMongoDB分支 ,不学习本节不影响以后的教程学习。

安装MongoDB

使用apt-get进行安装

sudo apt-get install mongodb

打开/关闭服务命令

sudo service mongodb start
sudo service mongodb stop

如果不对其进行配置的话,MongoDB的默认端口是27017,我们就使用默认配置吧。

为了测试是否安装成功,可以在命令行中输入

sudo service mongodb start
mongo

正常如下图所示:


Scrapy定向爬虫教程(四)――数据存入MongoDB
pymongo的安装

在本地搭起了MongoDB并开启后,我们需要使用python来操作它,pymongo就是一个Python操作MongoDB的第三方库。

直接使用pip下载它,输入以下命令:

sudo pip install pymongo

结果如下图代表安装成功


Scrapy定向爬虫教程(四)――数据存入MongoDB

可以先在命令行里验证一下是否能够调用,如下图,没问题:


Scrapy定向爬虫教程(四)――数据存入MongoDB
Scrapy+pymongo

我们这里使用的是第三节完成的项目进行修改,项目地址: heartsong 。原本是将爬取的数据存入txt文件,现在我们改成将数据存入本地MongoDB数据库,当然,远程数据库也同理啦。

首先开启本地的MongoDB服务

sudo service mongodb start

在 settings.py 文件中添加数据库的配置项

MONGO_HOST = "127.0.0.1" # 主机IP
MONGO_PORT = 27017 # 端口号
MONGO_DB = "Spider" # 库名
MONGO_COLL = "heartsong" # collection名
# MONGO_USER = "zhangsan"
# MONGO_PSW = "123456"

然后编写 Pipelines.py

# -*- coding: utf-8 -*-
import pymongo
from scrapy.conf import settings
class HeartsongPipeline(object):
def __init__(self):
# 链接数据库
self.client = pymongo.MongoClient(host=settings['MONGO_HOST'], port=settings['MONGO_PORT'])
# 数据库登录需要帐号密码的话
# self.client.admin.authenticate(settings['MINGO_USER'], settings['MONGO_PSW'])
self.db = self.client[settings['MONGO_DB']] # 获得数据库的句柄
self.coll = self.db[settings['MONGO_COLL']] # 获得collection的句柄
def process_item(self, item, spider):
postItem = dict(item) # 把item转化成字典形式
self.coll.insert(postItem) # 向数据库插入一条记录
return item # 会在控制台输出原item数据,可以选择不写

这里要说明一点就是在使用MongoDB的时候不同于mysql,不用事先定义好数据表和表结构。我们用insert语句插入的时候,如果collection还不存在,他会自动被创建出来。

修改好之后就可以跑起来了,命令行输入我们早已熟悉的

scrapy crawl heartsong

在命令行里的显示跟从前一样这里我就不截图了。

那么问题来了,我们的数据存成功了没?好,用命令行查看一波!


Scrapy定向爬虫教程(四)――数据存入MongoDB

但是这样有点麻烦哎……不要烦,不要慌,神器来了!

Robmongo的下载使用

Robmongo是MongoDB的一个可视化管理工具,类似phpMyAdmin和MySQL的关系。它有各种系统的版本,windows、Linux、MacOS都可以在官网上下载。

如果你想使用命令行来管理你的数据库,当然也是OK的,不过就请移步去学一下MongoDB的操作吧^_^。

下载

直接百度一下“Robmongo”,第一个就是它的官网


Scrapy定向爬虫教程(四)――数据存入MongoDB

进入官网后点击下载链接


Scrapy定向爬虫教程(四)――数据存入MongoDB

最新版本是收费的,我们往下拉,选择从前的版本进行下载,土豪当我没说


Scrapy定向爬虫教程(四)――数据存入MongoDB
Scrapy定向爬虫教程(四)――数据存入MongoDB

等啊等,等啊等,下载好了之后,把tar包放到你想放的位置,直接解压/提取即可


Scrapy定向爬虫教程(四)――数据存入MongoDB

进入解压/提取好的文件夹,进入bin目录,双击robmongo即可打开


Scrapy定向爬虫教程(四)――数据存入MongoDB

然后创建链接


Scrapy定向爬虫教程(四)――数据存入MongoDB
Scrapy定向爬虫教程(四)――数据存入MongoDB

然后Save,Connect,就可以浏览数据库信息啦


Scrapy定向爬虫教程(四)――数据存入MongoDB
小结

本节介绍了Scrapy结合MongoDB进行数据存储,MongoDB和pymongo的其他高大上的操作就请各位自己钻研喽。

本文开发(python)相关术语:python基础教程 python多线程 web开发工程师 软件开发工程师 软件开发流程

分页:12
转载请注明
本文标题:Scrapy定向爬虫教程(四)――数据存入MongoDB
本站链接:http://www.codesec.net/view/483043.html
分享请点击:


1.凡CodeSecTeam转载的文章,均出自其它媒体或其他官网介绍,目的在于传递更多的信息,并不代表本站赞同其观点和其真实性负责;
2.转载的文章仅代表原创作者观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,本站对该文以及其中全部或者部分内容、文字的真实性、完整性、及时性,不作出任何保证或承若;
3.如本站转载稿涉及版权等问题,请作者及时联系本站,我们会及时处理。
登录后可拥有收藏文章、关注作者等权限...
技术大类 技术大类 | 开发(python) | 评论(0) | 阅读(90)