MongoDB是一种流行的NoSQL数据库,它以灵活的文档结构存储数据。MongoDB 提供了可用于 32 位和 64 位系统的预编译二进制包,你可以从MongoDB官网下载安装,MongoDB 预编译二进制包下载地址:
https://www.mongodb.com/try/download/community-kubernetes-operator
根据上图所示下载 zip 包。
提示:版本的选择:
MongoDB的版本命名规范如:x.y.z;
y为奇数时表示当前版本为开发版,如:1.5.2、4.1.13;
y为偶数时表示当前版本为稳定版,如:1.6.3、4.0.10;
z是修正版本号,数字越大越好。
将压缩包解压到一个目录中。
在解压目录中,手动建立一个目录用于存放数据文件,如 data/db
在 bin 目录中打开命令行提示符,输入如下命令:
mongod --dbpath=..\data\db
我们在启动信息中可以看到,mongoDB的默认端口是27017,如果我们想改变默认的启动端口,可以通过--port来指定端口。为了方便我们每次启动,可以将安装目录的bin目录设置到环境变量的path中, bin 目录下是一些常用命令,比如 mongod 启动服务用的,mongo 客户端连接服务用的。
在上一个cmd窗口不关的基础上,再次打开一个新的命令窗口输入mongo连接数据库
查看已经有的数据库
show dbs
选择和创建数据库的语法格式如下,如果数据库不存在则自动创建,例如,以下语句创建text 数据库:
use 数据库名称
use text
注意!!!创建之后查询,会发现并没有看到我们刚刚新建的数据库,这是因为在 MongoDB 中,集合只有在内容插入后才会创建! 就是说,创建集合(数据表)后要再插入一个文档(记录),集合才会真正创建。
查看当前正在使用的数据库命令
db
创建一个名为 douban的普通集合。
db.createCollection("douban")
本文主要是为了演示如何使用MongoDB存储数据,就简单的豆瓣一下吧。
import requests
import re
import random
import json
from pymongo import MongoClient
import time
# 连接MongoDB数据库
client = MongoClient('localhost', 27017)
databases = client.list_database_names()
print(1)
# 选择douban数据库
db = client["text"]
collection = db["douban"]
print(collection)
def user_agent_random():
"""
随机选择一个User-Agent字符串
"""
user_agent_list = [
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; AcooBrowser; .NET CLR 1.1.4322; .NET CLR 2.0.50727)",
"Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; Acoo Browser; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.0.04506)",
"Mozilla/4.0 (compatible; MSIE 7.0; AOL 9.5; AOLBuild 4337.35; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)",
"Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; Acoo Browser; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.0.04506)",
"Mozilla/4.0 (compatible; MSIE 7.0; AOL 9.5; AOLBuild 4337.35; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)",
"Mozilla/5.0 (Windows; U; MSIE 9.0; Windows NT 9.0; en-US)",
"Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET CLR 2.0.50727; Media Center PC 6.0)",
"Mozilla/5.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET CLR 1.0.3705; .NET CLR 1.1.4322)",
"Mozilla/4.0 (compatible; MSIE 7.0b; Windows NT 5.2; .NET CLR 1.1.4322; .NET CLR 2.0.50727; InfoPath.2; .NET CLR 3.0.04506.30)",
"Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN) AppleWebKit/523.15 (KHTML, like Gecko, Safari/419.3) Arora/0.3 (Change: 287 c9dfb30)",
"Mozilla/5.0 (X11; U; Linux; en-US) AppleWebKit/527+ (KHTML, like Gecko, Safari/419.3) Arora/0.6",
"Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.2pre) Gecko/20070215 K-Ninja/2.1.1",
"Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9) Gecko/20080705 Firefox/3.0 Kapiko/3.0",
"Mozilla/5.0 (X11; Linux i686; U;) Gecko/20070322 Kazehakase/0.4.5",
"Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.8) Gecko Fedora/1.9.0.8-1.fc10 Kazehakase/0.5.6",
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_3) AppleWebKit/535.20 (KHTML, like Gecko) Chrome/19.0.1036.7 Safari/535.20",
]
# 随机选择一个User-Agent字符串作为请求头
headers = {
'user-agent': random.choice(user_agent_list)
}
return headers
# 使用随机选择的User-Agent发送请求
headers = user_agent_random()
# 每次请求的URL
for num in range(0, 999, 20):
url = f'https://movie.douban.com/j/chart/top_list?type=11&interval_id=100%3A90&action=&start={num}&limit=20'
print(url)
response = requests.get(url, headers=headers).text
response = json.loads(response)
# 将返回的数据插入到MongoDB中
for data in response:
info = {
"title": data["title"],
"rating": data["rating"][0],
"types": data["types"],
"regions": data["regions"],
"release_date": data["release_date"],
"actors": data["actors"],
"url": data["url"]
}
collection.insert_one(info)
print(info)
# 随机等待一段时间
result = random.randint(1, 5)
time.sleep(result)
连接数据库,选择之前创建的douban集合
info中为要存储的数据
运行爬虫存储数据到数据库
查询数据库中有无数据
也可以用图形化界面管理数据库
https://www.mongodb.com/try/download/shell
我会努力将有用的东西分享给大家。您的点赞,在看和转发分享是对我最好的鼓励。如果有任何疑问随时留言公众号!
- End -
ALL程序猿
关注我获得
更多精彩