Python爬虫 知识量:11 - 28 - 71
MongoDB是一个基于分布式文件存储的数据库,由C++语言编写。它旨在为WEB应用提供可扩展的高性能数据存储解决方案。以下是MongoDB的一些基本概念:
数据结构:MongoDB的数据结构是非关系型的,采用类似JSON的BSON(Binary JSON)格式存储数据。这意味着数据之间没有严格的表结构限制,可以灵活地存储复杂的数据类型。
文档:在MongoDB中,文档是数据的基本单元,类似于关系型数据库中的行。每个文档都是一个键值对的集合,其中键是字符串类型,值可以是各种数据类型,如字符串、数字、布尔值、日期、数组等。
集合:多个文档组成一个集合,类似于关系型数据库中的表。集合没有固定的模式,可以存储不同格式和结构的文档。
数据库:多个集合组成一个数据库,每个数据库都有自己的名称和存储空间。一个MongoDB实例可以容纳多个独立的数据库。
查询语言:MongoDB的查询语言非常强大和灵活,支持类似面向对象的查询语法。它允许用户执行各种复杂的查询操作,如条件查询、聚合、排序等。
索引:MongoDB支持对集合中的字段建立索引,以提高查询速度。索引类似于关系型数据库中的索引,可以创建单字段索引或多字段复合索引。
分片:为了实现数据的水平扩展,MongoDB支持将集合分片存储在多个服务器上。分片可以将数据分布到不同的物理节点上,从而提高系统的整体性能和可伸缩性。
复制集:MongoDB的复制集是一种数据冗余和故障恢复机制,通过在多个服务器上复制数据来保证数据的可靠性和可用性。复制集可以提供读取副本和高可用性的功能。
Python提供了多种库来操作MongoDB数据库,其中最常用的是PyMongo。以下是一个简单的示例,演示如何使用PyMongo在Python中连接到MongoDB数据库并执行一些基本操作:
首先,确保已经安装了PyMongo库。如果尚未安装,可以使用以下命令进行安装:
pip install pymongo
接下来,可以使用以下代码连接到MongoDB数据库并执行一些基本操作:
from pymongo import MongoClient # 连接到MongoDB数据库 client = MongoClient('localhost', 27017) # 选择数据库(如果数据库不存在,将会自动创建) db = client['mydatabase'] # 选择集合(如果集合不存在,将会自动创建) collection = db['mycollection'] # 插入文档 document = {"name": "John", "age": 30, "city": "New York"} collection.insert_one(document) # 查询文档 result = collection.find_one({"name": "John"}) print(result) # 更新文档 collection.update_one({"name": "John"}, {"$set": {"age": 31}}) result = collection.find_one({"name": "John"}) print(result) # 删除文档 collection.delete_one({"name": "John"})
在上述示例中,首先使用MongoClient连接到本地MongoDB服务器。然后,选择要操作的数据库和集合。接下来,执行了一些基本操作,包括插入文档、查询文档、更新文档和删除文档。
以下是一个简单的示例代码,演示如何将爬取的数据存储到MongoDB数据库中:
from pymongo import MongoClient from bs4 import BeautifulSoup # 爬取网页数据 response = requests.get('http://example.com') soup = BeautifulSoup(response.text, 'html.parser') data = soup.find_all('div', class_='data') # 连接到MongoDB数据库 client = MongoClient('localhost', 27017) db = client['mydatabase'] collection = db['mycollection'] # 遍历爬取的数据,将数据插入到MongoDB数据库中 for item in data: name = item.find('div', class_='name').text age = item.find('div', class_='age').text city = item.find('div', class_='city').text # 将数据插入到MongoDB数据库中 document = {"name": name, "age": age, "city": city} collection.insert_one(document)
在上述示例中,首先使用requests库爬取网页数据,并使用BeautifulSoup解析网页。然后,使用PyMongo连接到MongoDB数据库。接下来,遍历爬取的数据,提取所需的信息,并构建一个文档对象。最后,使用insert_one()方法将文档插入到MongoDB数据库中。
Copyright © 2017-Now pnotes.cn. All Rights Reserved.
编程学习笔记 保留所有权利
MARK:3.0.0.20240214.P35
From 2017.2.6