分享

Scrapy定向爬虫教程(四)

 昵称54185769 2018-05-08

本节内容

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

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

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

安装MongoDB

使用apt-get进行安装

sudo apt-get install mongodb
  • 1

打开/关闭服务命令

sudo service mongodb start
sudo service mongodb stop
  • 1
  • 2

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

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

sudo service mongodb start
mongo
  • 1
  • 2

正常如下图所示:
mongo

pymongo的安装

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

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

sudo pip install pymongo
  • 1

结果如下图代表安装成功

安装

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

验证

Scrapy+pymongo

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

首先开启本地的MongoDB服务

sudo service mongodb start
  • 1

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"
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

然后编写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数据,可以选择不写
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

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

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

scrapy crawl heartsong
  • 1

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

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

这里写图片描述

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

Robmongo的下载使用

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

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

下载

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

官网

进入官网后点击下载链接

下载

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

下载2

下载3

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

解压

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

打开

然后创建链接

连接1

连接2

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

浏览

小结

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

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多