上次

我们知道了怎么操作 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. 【NOI 2007】 社交网络

    [题目链接] 点击打开链接 [算法] 首先,跑floyd,计算最短路和最短路径数 然后,计算答案,枚举k,s,t,若dist[s][k] + dist[k][t] = dist[s][t], 那么,点 ...

  2. AIZU AOJ 2309 Vector Compression 最小树形图(朱—刘算法)

    题意简述:给定若干个相同维度的向量,寻找一种排序方法,使得所有向量的表示长度总和最低. 所谓表示长度为(Aj-r*Ai)^2,其中i<j  数据范围:向量总数和维度均小于100 思路:(1)首先 ...

  3. Hexo 添加Live2D看板娘

    title: Hexo 添加 Live2D看板娘 二次元什么的最喜欢了[大好きです] 准备 项目地址 live2d模型 部分模型预览 开始 首先进入Hexo博客根目录安装live2d插件 $ npm ...

  4. idea下载安装指南

    官网地址 https://www.jetbrains.com/idea/ 点击download 有收费版本和社区免费版.我下载了免费的. 有zip和exe两个版本.我先下载了zip绿色版,发现用不了. ...

  5. Troubleshooting Guide for ORA-12541 TNS: No Listener

    Server side checks (not platform specific): 1)  Check the result on the server using tnsping to the ...

  6. python2行代码调用程序

    import win32api win32api.ShellExecute(0, 'open', r'C:\Users\TOPFEEL\AppData\Local\Postman\app-5.5.0\ ...

  7. Xml学习笔记(2)

    不同的xml文档构可能要用到不同的方法进行解析这里用到的是例如<student name="张三" id="1" sex="男"/&g ...

  8. 用Martini、websocket实现单机版聊天室

    ChatRoom A stand-alone ChatRoom in Martini Please Star https://github.com/renleimlj/ChatRoom Interfa ...

  9. leetcode464 Can I Win

    思路: 博弈. 实现: class Solution { public: bool dfs(int cur, int len, int sum, int des, vector<int>& ...

  10. vue 父子组件双向绑定

    vue组件有2大特性: 1.全局组件和局部组件 2.父子组件的数据传递 接下来直接用demo直接看如何传值(静态传值) father.vue <template> <div> ...