Python爬虫之使用MongoDB存储数据的实现

 更新时间:2023年06月02日 09:38:13   作者:naer_chongya  
本文主要介绍了Python爬虫之使用MongoDB存储数据的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

MongoDB是一种基于文档的(Document-Oriented)NoSQL数据库,它设计简单、易于使用,适用于大多数应用程序开发需求。与传统的关系型数据库不同,MongoDB不需要一个明确定义的模式来存储数据,这意味着可以轻松存储包含不同类型和结构的数据。

在Python中使用MongoDB存储数据是非常简单的,Python中有很多优秀的MongoDB驱动库可以选择,本文将介绍如何使用pymongo驱动库来实现数据存储。

1.安装pymongo

在使用pymongo之前,需要先进行安装。使用pip命令可以快速安装pymongo,如下所示:

pip install pymongo

2.连接MongoDB数据库

连接MongoDB数据库非常简单,只需指定MongoDB数据库的地址和端口号即可,如下所示:

import pymongo
client = pymongo.MongoClient("mongodb://localhost:27017/")

上面的代码通过pymongo驱动库创建一个MongoDB客户端,连接本地的MongoDB数据库,默认端口号为27017。

3.创建数据库和集合

在MongoDB中,数据以文档的形式存储在集合(Collection)中,集合是MongoDB中的一种无结构化的数据结构,类似于关系型数据库中的表。

要创建一个数据库和集合,可以使用以下代码:

import pymongo
client = pymongo.MongoClient("mongodb://localhost:27017/")
# 创建数据库
mydb = client["testdb"]
# 创建集合
mycol = mydb["testcol"]

在这个例子中,数据库名为“testdb”,集合名为“testcol”。

4.插入数据

要向MongoDB中插入数据,可以使用insert_one()和insert_many()方法。insert_one()方法插入一条数据,insert_many()方法插入多条数据。

import pymongo
client = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = client["testdb"]
mycol = mydb["testcol"]
# 插入一条数据
mydict = { "name": "John", "address": "Highway 37" }
x = mycol.insert_one(mydict)
# 插入多条数据
mylist = [
  { "name": "Amy", "address": "Apple st 652" },
  { "name": "Hannah", "address": "Mountain 21" },
  { "name": "Michael", "address": "Valley 345" },
  { "name": "Sandy", "address": "Ocean blvd 2" },
  { "name": "Betty", "address": "Green Grass 1" },
  { "name": "Richard", "address": "Sky st 331" },
  { "name": "Susan", "address": "One way 98" },
  { "name": "Vicky", "address": "Yellow Garden 2" },
  { "name": "Ben", "address": "Park Lane 38" },
  { "name": "William", "address": "Central st 954" },
  { "name": "Chuck", "address": "Main Road 989" },
  { "name": "Viola", "address": "Sideway 1633"}
]
x = mycol.insert_many(mylist)

5.查询数据

使用find()方法来查询MongoDB中的数据。find()方法可以接受查询条件作为参数,如果没有查询条件,则返回集合中的所有文档。

import pymongo
client = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = client["testdb"]
mycol = mydb["testcol"]
# 查询所有数据
for x in mycol.find():
  print(x)
# 查询name为John的数据
myquery = { "name": "John" }
mydoc = mycol.find(myquery)
for x in mydoc:
  print(x)

在上面的代码中,第一个for循环查询了集合中的所有文档,第二个for循环查询了符合条件的文档。

6.更新数据

使用update_one()方法或update_many()方法来更新MongoDB中的数据。

import pymongo
client = pymongo.MongoClient(“mongodb://localhost:27017/”)
mydb = client[“testdb”]
mycol = mydb[“testcol”]

更新一条数据

myquery = { “name”: “John” }
newvalues = { “$set”: { “address”: “Canyon 123” } }
mycol.update_one(myquery, newvalues)

更新多条数据 

myquery = { “address”: { “regex": "^S" } } newvalues = { "set”: { “name”: “Minnie” } }
x = mycol.update_many(myquery, newvalues)
print(x.modified_count, “文档已修改”)

7.删除数据

使用delete_one()方法或delete_many()方法来删除MongoDB中的数据。

import pymongo
client = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = client["testdb"]
mycol = mydb["testcol"]
# 删除一条数据
myquery = { "address": "Mountain 21" }
mycol.delete_one(myquery)
# 删除多条数据
myquery = { "name": {"$regex": "^S"} }
x = mycol.delete_many(myquery)
print(x.deleted_count, "文档已删除")

总结:

在Python中使用MongoDB存储数据非常方便,只需安装pymongo驱动库即可。通过连接MongoDB数据库、创建数据库和集合、插入、查询、更新和删除数据等基本操作,可以轻松实现数据的存储和管理。

到此这篇关于Python爬虫之使用MongoDB存储数据的实现的文章就介绍到这了,更多相关Python MongoDB存储数据内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python之字符串的遍历的4种方式

    Python之字符串的遍历的4种方式

    这篇文章主要介绍了Python之字符串的遍历的4种方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • Python生成动态路由轨迹图的示例详解

    Python生成动态路由轨迹图的示例详解

    在当今的数据驱动时代,可视化技术在数据分析和决策支持中扮演着越来越重要的角色,本文将介绍如何使用Python来生成动态的路由轨迹图,需要的可以了解下
    2025-02-02
  • jupyter notebook使用argparse传入list参数

    jupyter notebook使用argparse传入list参数

    这篇文章主要介绍了jupyter notebook使用argparse传入list参数,jupyter notebook其实是可以使用 argparse来调用参数的,只要把参数转为list即可,下面来看看具体的实现过程吧
    2022-01-01
  • 基于Python的人脸检测与分类过程详解

    基于Python的人脸检测与分类过程详解

    这篇文章主要介绍了基于Python的人脸检测与分类,算法分为两个部分识别人脸位置和确定人脸分类,由于这两项工作截然相反,所以我们使用了两个网络分别完成,详细过程跟随小编一起看看吧
    2022-05-05
  • Python接口自动化之接口依赖

    Python接口自动化之接口依赖

    这篇文章主要介绍了python接口自动化测试之接口数据依赖的实现方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2021-08-08
  • Python实现在Excel中动态插入与删除图片的完整指南

    Python实现在Excel中动态插入与删除图片的完整指南

    在自动化报表生成、数据可视化或办公流程优化中,经常需要在 Excel 文件中嵌入图表,本文将详细介绍如何使用主流库在 Excel 中添加图片和删除图片,有需要的小伙伴可以了解下
    2026-01-01
  • 在Python中处理日期和时间的基本知识点整理汇总

    在Python中处理日期和时间的基本知识点整理汇总

    这篇文章主要介绍了在Python中处理日期和时间的基本知识点整理汇总,是Python入门学习中的基础知识,需要的朋友可以参考下
    2015-05-05
  • 10款最好的Python开发编辑器

    10款最好的Python开发编辑器

    这篇文章主要介绍了10款最好的Python开发编辑器,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07
  • Pycharm 使用 Pipenv 新建的虚拟环境(图文详解)

    Pycharm 使用 Pipenv 新建的虚拟环境(图文详解)

    pipenv 是 Pipfile 主要倡导者、requests 作者 Kenneth Reitz 写的一个命令行工具,主要包含了Pipfile、pip、click、requests和virtualenv。这篇文章主要介绍了Pycharm 使用 Pipenv 新建的虚拟环境的问题,需要的朋友可以参考下
    2020-04-04
  • 编译 pycaffe时报错:fatal error: numpy/arrayobject.h没有那个文件或目录

    编译 pycaffe时报错:fatal error: numpy/arrayobject.h没有那个文件或目录

    这篇文章主要介绍了编译 pycaffe时报错:fatal error: numpy/arrayobject.h没有那个文件或目录,需要的朋友可以参考下
    2020-11-11

最新评论