Python项目管理利器poetry我愿称之为神!

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程序猿

关注我获得

更多精彩

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值