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来获取文档的标题和内容,并保 ...
随机推荐
- mysql与mongoDB的特点和优劣
首先分析下mysql与mongoDB的特点和优劣 从图中分析: 再来分析下应用场景: a.如果需要将mongodb作为后端db来代替mysql使用,即这里mysql与mongodb 属于平行级别,那么 ...
- Code First: 五大映射模式
映射一 Mapping the Table-Per-Hierarchy (TPH) Inheritance 模型文件 using System.Data.Entity; using System.Da ...
- IOS程序运行过程
IOS程序是从main开始运行的,main.m文件内容如下: #import <UIKit/UIKit.h> #import "AppDelegate.h" int m ...
- foxmail地址簿导入thunderbird的乱码问题 (转载)
转自:http://blog.csdn.net/gexueyuan/article/details/9032595 由于foxmail的地址簿格式和thunderbird的格式不一样,另外也存在编码问 ...
- Tomcat启动Web.xml引用其它XML配置报FileNotFound异常解决方案
如果使用JEECG框架进行Tomcat启动时,如果web.xml引用了其他xml文件,需要在tomcat文件夹里的config文件夹里的context.xml文件里的Context标签里配置xmlBl ...
- PCB 批量Word转PDF实现方法
自上次公司电脑中毒带来的影响,导致系统自动生成的Word档PCB出货报告,通过公司邮件服务器以附件的方式发送给客户后,客户是无法打开或打开缓慢的现象,如果将Word档转为PDF后在客户端是可以正常打开 ...
- Oracle虚拟机配置
1.正常安装 .配置 3.监听配置 4.重启监听服务 5.防火墙端口放行 6.Oracle客户端连接工具测试
- C#上机作业及代码Question1
第一题创建控制台应用程序,利用下面的公式计算 q 的近似值,并运行出 k=10 时 q 的值. 本着开源的精神,献给各位,题目简单,随便写写,功能都实现了,不过现在先上传简单题,有一些难度的题目我先留 ...
- ACM_走楼梯Ⅱ
走楼梯Ⅱ Time Limit: 2000/1000ms (Java/Others) Problem Description: 有一楼梯共N+1级,刚开始时你在第一级,若每次能走M级(1<=M& ...
- 全面学习ORACLE Scheduler特性(5)Schedules调度Programs执行的Jobs
3.2 Schedules调度Programs执行的Jobs 通过schedule调度program的执行的job,看到这样的形容是不是让你彻底晕头了,就说明你还是没搞明白10g中SCHEDULERS ...