python爬虫27 | 当Python遇到MongoDB的时候,存储av女优的数据变得如此顺滑爽~
上次
我们知道了怎么操作 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
接下来就是

我们先来看看这样的数据
| 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女优的数据变得如此顺滑爽~的更多相关文章
- python爬虫-基础入门-python爬虫突破封锁
python爬虫-基础入门-python爬虫突破封锁 >> 相关概念 >> request概念:是从客户端向服务器发出请求,包括用户提交的信息及客户端的一些信息.客户端可通过H ...
- Python爬虫学习==>第二章:MongoDB环境配置
学习目的: MongoDB的安装 正式步骤 (VMWare 虚拟机上无法安装这个MongoDB的自启动服务,如果你能办到,请多赐教) Step1:MongoDB的简介 MongoDB是一个基于分布式文 ...
- python爬虫成长之路(一):抓取证券之星的股票数据
获取数据是数据分析中必不可少的一部分,而网络爬虫是是获取数据的一个重要渠道之一.鉴于此,我拾起了Python这把利器,开启了网络爬虫之路. 本篇使用的版本为python3.5,意在抓取证券之星上当天所 ...
- python爬虫---->github上python的项目
这里面通过爬虫github上的一些start比较高的python项目来学习一下BeautifulSoup和pymysql的使用.我一直以为山是水的故事,云是风的故事,你是我的故事,可是却不知道,我是不 ...
- 【python爬虫】用python编写LOL战绩查询
介绍一个简单的python爬虫,通过Tkinter创建一个客户端,当输入要查询的LOL用户名称的时候,可以显示出当前用户的所在服务器,当前战力和当前段位. 爬取网页地址:http://lol.duow ...
- python爬虫——拉钩网python岗位信息
之前爬取的网页都是采用"GET"方法,这次爬取"拉勾网"是采取了"POST"的方法.其中,"GET"和"POS ...
- 简单python爬虫编写,Python采集妹子图!
疫情期间在家闲来无事,每天打游戏荒废了一段时间.我觉得自己不能在这么颓废下去,就立马起身写了一点python代码(本人只是python新手). 很多人学习python,不知道从何学起.很多人学习pyt ...
- Python爬虫学习:Python内置的爬虫模块urllib库
urllib库 urllib库是Python中一个最基本的网络请求的库.它可以模拟浏览器的行为发送请求(都是这样),从而获取返回的数据 urllib.request 在Python3的urllib库当 ...
- Python爬虫抓取 python tutorial中文版,保存为word
看到了中文版的python tutorial,发现是网页版的,刚好最近在学习爬虫,想着不如抓取到本地 首先是网页的内容 查看网页源码后发现可以使用BeautifulSoup来获取文档的标题和内容,并保 ...
随机推荐
- 10.04 FZSZ模拟Day1 总结
今天轮到FZSZ出题了,这可是连续两年捧杯NOI的学校了…… 可想而知今天题难度有多大……不过似乎还要庆幸出题的是一位叫Anzhe Wang 的大神而不是fjzzq? T1.permutation 期 ...
- 6 Workbook 对象
6.1 在奔跑之前先学会走路:打开和关闭工作薄 代码清单6.1:一个完整的工作薄批处理框架 '代码清单6.1:一个完整的工作薄批处理框架 Sub ProcessFileBatch() Dim nInd ...
- U74201 旅行计划 树上找链长度
题目背景 珂朵莉放假了,她打算去唐山旅行. 题目描述 我们简单地把唐山的共 nn 个景点看成是一棵树,有 n-1n−1 条边将它们连接起来,每个景点有一个游览指数 v_ivi.珂朵莉的假期时间不长, ...
- .gitignore(转载)
转自:http://blog.csdn.net/liuqiaoyu080512/article/details/8648266 git 可以管理所有文件的变更, 但并不是所有文件都有意义. 大部分二进 ...
- php可以定义数组的常量吗
是这样吗?<?php define('BEST_PHPER',array('name'=>'巩文','address'=>'china')); My God,明确告诉你不可以:原因是 ...
- java HashMap和LinkedHashMap区别
我们用的最多的是HashMap,在Map 中插入.删除和定位元素,HashMap 是最好的选择.但如果您要按自然顺序或自定义顺序遍历键,那么TreeMap会更好.如果需要输出的顺序和输入的相同,那么用 ...
- 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 ...
- 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 ...
- TCP/IP与Http与socket的关系
1 理清概念: TCP/IP是一个大的协议族(只不过TCP和IP是super star所以就这么命名了),它包括了: 应用层协议:FTP.HTTP.TELNET.SMTP.DNS(协议): 传输层协议 ...
- VMware workstation 14 CentOs 7.5.1804 虚拟机网卡设置为NAT模式并设置固定IP
一.背景知识 虚拟机网络模式 无论是vmware workstation,virtual box,virtual pc等虚拟机软件,一般来说,虚拟机有三种网络模式: 1.桥接 2.NAT 3. ...