暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

python爬虫27 | 当Python遇到MongoDB的时候,存储av女优的数据变得如此顺滑爽~

小帅b和他的朋友们 2019-05-01
891


上次


我们知道了怎么操作 MySQL 数据库


python爬虫26 | 把数据爬取下来之后就存储到你的MySQL数据库。


MySQL 有些年头了


开源又成熟又牛逼


所以现在很多企业都在使用 MySQL


MySQL 是关系型数据库


其实当前主流的数据库 


例如


Oracle、DB2、PostgreSQL、Microsoft SQL Server 等等


都是关系型数据库


这样的话


它们可以在数据表之间建立索引、约束


进行关联


让表与表之间产生联系


可以让数据重复利用,不会浪费



 相对应的就是


非关系型数据库


NoSQL


它不用传统的 SQL 语句进行操作


而是有自己的独特的数据存储方式


可以说相当方便


NOSQL 的经典代表数据库就是我们今天要说的


MongoDB


由 C++ 写的 文档存储 形式的非关系数据库


如果你对 JSON 有所了解


那么 MongoDB 对你来说so easy



由于它是基于内存对数据进行处理的


所以读写速度相对更高一些


好了


吹了一波 MongoDB 的牛逼之后



接下来小帅b就来跟你说说


怎么玩 MongoDB


接下来就是


学习 python 的正确姿势



我们先来看看这样的数据


namequantitysizestatustagsrating
journal2514x21,cmAbrown, lined9
notebook508.5x11,inAcollege-ruled,perforated8
paper1008.5x11,inDwatercolor10
planner7522.85x30,cmD201910
postcard4510x,cmDdouble-sided,white2

(来自 mongodb 官方例子)


有些字段里面包含多个信息


如果按传统的 SQL 的话


查询起来比较麻烦


而且需要创建多张表进行关联


而用文档格式存储的话就可以使用这样的格式表示


    {
    "name": "notebook",
    "qty": 50,
    "rating": [ { "score": 8 }, { "score": 9 } ],
    "size": { "height": 11, "width": 8.5, "unit": "in" },
    "status": "A",
    "tags": [ "college-ruled", "perforated"]
    }



    是不是很简单咧


    那么接下来小帅b就带你使用 python 来操作 MangoDB 吧


    真香假设


    本文假设你的操作系统已经安装好 MangoDB 了

    如果你还没安装的话

    可以到以下链接进行下载安装


    https://docs.mongodb.com/manual/installation/?jmp=footer&_ga=2.246611149.899311115.1556631996-38380112.1556631995



    当你安装完之后


    启动 mongodb


    然后输入 mongo 就可以操作 MongoDB 了



    好了好了


    我们使用 python 代码来操作一下吧


    这次我们需要一个库


    Pymongo


      from pymongo import MongoClient


      连接到你的 MongoDB


        conn = MongoClient('mongodb://localhost:27017/')


        27017 是你的 MongoDB 的默认端口


        创建一个 avIdol 数据库,如果 mongodb 没有会自行创建


          db = conn.avIdol


          往数据库插入一条数据


            db.col.insert({"name": '波多野結衣', 'bwh': '{ "b": 90, "w": 59, "h": 85}' , 'age': 30})


            运行一下


            没报什么错


            接着我们使用


            print(db.col.find_one())


            来查询一下是否插入数据了



            可以看到


            数据插入成功


            来个批量插入吧


              db.col.insert([
              {"name": '波多野結衣', 'bwh': '{ "b": 90, "w": 59, "h": 85}' , 'age': 30},
              {"name": '吉泽明步', 'bwh': '{ "b": 86, "w": 58, "h": 86}' , 'age': 35},
              {"name": '桃乃木香奈', 'bwh': '{ "b": 80, "w": 54, "h": 80}' , 'age': 22},
              {"name": '西宫梦', 'bwh': '{ "b": 85, "w": 56, "h": 86}' , 'age': 22},
              {"name": '松下纱荣子', 'bwh': '{ "b": 88, "w": 57, "h": 86}' , 'age': 28}
              ])



              这次我们使用 for 循环查询一下数据库


                for item in db.col.find():
                print(item)


                可以看到


                数据被我们存储下来了



                当然


                你也可以通过条件查询


                例如根据 id 查询




                删除 波多野结衣



                  db.col.remove({"name": "波多野結衣"})


                  删除全部


                    db.col.remove()


                    把 吉泽明步 换成 苍井空


                      db.col.update({'name': '吉泽明步'}, {'$set': {'name': '苍井空'}})



                      ok


                      以上就是 python 对 MongoDB 的操作


                      更多关于 MongoDB 的介绍可以到官方看看


                      https://docs.mongodb.com/


                      以后


                      小帅b带你玩爬虫项目实战的时候


                      还会提及 MongoDB 的


                      期待就好


                      那么


                      我们下回见了


                      peace



                      记得素质三连!!!!!!!!!!!!!!!!

                      文章转载自小帅b和他的朋友们,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                      评论