上次

我们知道了怎么操作 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 的正确姿势

我们先来看看这样的数据

name quantity size status tags rating
journal 25 14x21,cm A brown, lined 9
notebook 50 8.5x11,in A college-ruled,perforated 8
paper 100 8.5x11,in D watercolor 10
planner 75 22.85x30,cm D 2019 10
postcard 45 10x,cm D double-sided,white 2

(来自 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

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

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

  1. python爬虫-基础入门-python爬虫突破封锁

    python爬虫-基础入门-python爬虫突破封锁 >> 相关概念 >> request概念:是从客户端向服务器发出请求,包括用户提交的信息及客户端的一些信息.客户端可通过H ...

  2. Python爬虫学习==>第二章:MongoDB环境配置

    学习目的: MongoDB的安装 正式步骤 (VMWare 虚拟机上无法安装这个MongoDB的自启动服务,如果你能办到,请多赐教) Step1:MongoDB的简介 MongoDB是一个基于分布式文 ...

  3. python爬虫成长之路(一):抓取证券之星的股票数据

    获取数据是数据分析中必不可少的一部分,而网络爬虫是是获取数据的一个重要渠道之一.鉴于此,我拾起了Python这把利器,开启了网络爬虫之路. 本篇使用的版本为python3.5,意在抓取证券之星上当天所 ...

  4. python爬虫---->github上python的项目

    这里面通过爬虫github上的一些start比较高的python项目来学习一下BeautifulSoup和pymysql的使用.我一直以为山是水的故事,云是风的故事,你是我的故事,可是却不知道,我是不 ...

  5. 【python爬虫】用python编写LOL战绩查询

    介绍一个简单的python爬虫,通过Tkinter创建一个客户端,当输入要查询的LOL用户名称的时候,可以显示出当前用户的所在服务器,当前战力和当前段位. 爬取网页地址:http://lol.duow ...

  6. python爬虫——拉钩网python岗位信息

    之前爬取的网页都是采用"GET"方法,这次爬取"拉勾网"是采取了"POST"的方法.其中,"GET"和"POS ...

  7. 简单python爬虫编写,Python采集妹子图!

    疫情期间在家闲来无事,每天打游戏荒废了一段时间.我觉得自己不能在这么颓废下去,就立马起身写了一点python代码(本人只是python新手). 很多人学习python,不知道从何学起.很多人学习pyt ...

  8. Python爬虫学习:Python内置的爬虫模块urllib库

    urllib库 urllib库是Python中一个最基本的网络请求的库.它可以模拟浏览器的行为发送请求(都是这样),从而获取返回的数据 urllib.request 在Python3的urllib库当 ...

  9. Python爬虫抓取 python tutorial中文版,保存为word

    看到了中文版的python tutorial,发现是网页版的,刚好最近在学习爬虫,想着不如抓取到本地 首先是网页的内容 查看网页源码后发现可以使用BeautifulSoup来获取文档的标题和内容,并保 ...

随机推荐

  1. 10.04 FZSZ模拟Day1 总结

    今天轮到FZSZ出题了,这可是连续两年捧杯NOI的学校了…… 可想而知今天题难度有多大……不过似乎还要庆幸出题的是一位叫Anzhe Wang 的大神而不是fjzzq? T1.permutation 期 ...

  2. 6 Workbook 对象

    6.1 在奔跑之前先学会走路:打开和关闭工作薄 代码清单6.1:一个完整的工作薄批处理框架 '代码清单6.1:一个完整的工作薄批处理框架 Sub ProcessFileBatch() Dim nInd ...

  3. U74201 旅行计划 树上找链长度

    题目背景 珂朵莉放假了,她打算去唐山旅行. 题目描述 我们简单地把唐山的共 nn 个景点看成是一棵树,有 n-1n−1 条边将它们连接起来,每个景点有一个游览指数 v_ivi​.珂朵莉的假期时间不长, ...

  4. .gitignore(转载)

    转自:http://blog.csdn.net/liuqiaoyu080512/article/details/8648266 git 可以管理所有文件的变更, 但并不是所有文件都有意义. 大部分二进 ...

  5. php可以定义数组的常量吗

    是这样吗?<?php define('BEST_PHPER',array('name'=>'巩文','address'=>'china')); My God,明确告诉你不可以:原因是 ...

  6. java HashMap和LinkedHashMap区别

    我们用的最多的是HashMap,在Map 中插入.删除和定位元素,HashMap 是最好的选择.但如果您要按自然顺序或自定义顺序遍历键,那么TreeMap会更好.如果需要输出的顺序和输入的相同,那么用 ...

  7. Java compiler level does not match the version of the installed Java project facet问题处理

    从SVN上下载应用后在Problems面板中提示以下错误信息: Java compiler level does not match the version of the installed Java ...

  8. Android 性能优化(13)网络优化( 9)Determining and Monitoring the Docking State and Type

    Determining and Monitoring the Docking State and Type PreviousNext This lesson teaches you to Determ ...

  9. TCP/IP与Http与socket的关系

    1 理清概念: TCP/IP是一个大的协议族(只不过TCP和IP是super star所以就这么命名了),它包括了: 应用层协议:FTP.HTTP.TELNET.SMTP.DNS(协议): 传输层协议 ...

  10. VMware workstation 14 CentOs 7.5.1804 虚拟机网卡设置为NAT模式并设置固定IP

    一.背景知识     虚拟机网络模式 无论是vmware workstation,virtual box,virtual pc等虚拟机软件,一般来说,虚拟机有三种网络模式: 1.桥接 2.NAT 3. ...