前言:就学习爬虫而言,对于三种常见的数据库做个基本了解足以,所以笔记都是浅尝辄止,不会涉及太深入的东西。
MongoDB基本介绍
爬虫数据存储的数据库选择
一般爬虫使用的数据库,是根据项目来定的。
如需求方指定了使用什么数据库、如果没指定,那么决定权就在爬虫程序员手里,如果自选的话,mysql 和mongodb 用的都是比较多的。
但不同的数据库品种有各自的优缺点,不同的场景任何一种数据库都可以用来存储,但是某种可能会更好。
比如抓取的数据之间的耦合性很高,关系比较复杂的话,那么mysql可能会是更好的选择。
如果抓取的数据是分版块的,并且它们之间没有相似性或关联性不强,那么可能mongodb 会更好。
=====================================================================
mongoDB的生态、理念非常先进而且成熟、但是mongoDB不仅有开源版本,还有企业版本。所以有部分公司比较担心,哪天无法使用mongoDB了,所以也会产生一些替代产品。
DynamoDB : AWS
SequoiaDB : 巨杉数据库
安装及链接mongo
python安装:pip install pymongo
数据库连接,无密码
import pymongo
mongo = pymongo.MongoClient("mongodb://ip/")
数据库连接,有密码
import pymongo
from urllib.parse import quote_plus
if __name__ == '__main__':
# 方式1:
username = quote_plus("mongotest") # 字符转移,防止出现多字节的字符,例如中文或者特殊符号
password = quote_plus("123456")
database = quote_plus("mongotest")
# 获取数据库连接对象
mongo = pymongo.MongoClient(f"mongodb://{username}:{password}@127.0.0.1:27017/{database}")
print(mongo)
# 获取数据库操作对象
db = mongo[database]
print(db)
# 获取集合操作对象
collection = db["users"]
print(collection)
# 方式2:
mongo = pymongo.MongoClient('mongodb://127.0.0.1:27017')
db = mongo["mongotest"]
username = "mongotest"
password = "123456"
db.authenticate(username, password) # 相当于在monogDB终端下的db.auth()
print(db)
collection = db["users"]
print(collection)