![Python 3 爬虫、数据清洗与可视化实战(第2版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/935/32517935/b_32517935.jpg)
3.3 存储数据到MongoDB
MongoDB是一个基于分布式文件存储的数据库,由C++语言编写,旨在为Web应用提供可扩展的高性能数据存储解决方案。
MongoDB是一款介于关系数据库和非关系数据库之间的产品,它在非关系数据库中功能最丰富,最像关系数据库。
3.3.1 下载并安装MongoDB
1.下载MongoDB
到MongoDB的官网下载MongoDB即可。
2.配置本地MongoDB
MongoDB每次启动时都需要在CMD中进行配置,找到安装目录下的bin文件夹路径,如图3-11所示。
![img](https://epubservercos.yuewen.com/3DAE1E/17545851106441906/epubprivate/OEBPS/Images/txt003_20.jpg?sign=1738919703-yNDmk3DOW12onssPrDSDjTjP7wD7E5dj-0-5ec17f5d88c00de606419438beec9670)
图3-11
由CMD进入以下路径:
![img](https://epubservercos.yuewen.com/3DAE1E/17545851106441906/epubprivate/OEBPS/Images/txt003_21.jpg?sign=1738919703-cGEXVUJEeyvpsAub907o4kLAHRNaIUvN-0-e303d4abb0e69b6838de173ed8640d3b)
配置数据库路径,配置前要先在C盘中新建文件夹,代码如下。
![img](https://epubservercos.yuewen.com/3DAE1E/17545851106441906/epubprivate/OEBPS/Images/txt003_22.jpg?sign=1738919703-4uGdYOhXcNprhdIsVFHZhT2Cq9qiYlpv-0-bf14a38728b29f6b2450a8b8156364c5)
代码运行结果如下所示。
![img](https://epubservercos.yuewen.com/3DAE1E/17545851106441906/epubprivate/OEBPS/Images/txt003_23.jpg?sign=1738919703-CBmrv0aAeP0BsuUmfp9TH4HGR87v7IGf-0-bb2b62f2f1e217d803a72be5983ce674)
再打开一个CMD,进入MongoDB确认数据库已经启动,进入bin路径,如下所示。
![img](https://epubservercos.yuewen.com/3DAE1E/17545851106441906/epubprivate/OEBPS/Images/txt003_24.jpg?sign=1738919703-5FP8rYngtPUcq6cG8uNsXg1BCo6cZAEA-0-5cb3d360fba3d2829a3ee81b68f297f0)
输入“mongo”连接数据库,显示“>”就代表MongoDB已经正常启动,如下所示。
![img](https://epubservercos.yuewen.com/3DAE1E/17545851106441906/epubprivate/OEBPS/Images/txt003_25.jpg?sign=1738919703-lz2UBQHcbG4opB13BRAndaehT014UDv3-0-ad2d442cd953dc2df0ce51b0e397c260)
3.3.2 在PyCharm中安装Mongo Plugin
在PyCharm中,依次执行“File”g“Settings”g“Plugins”→“Browse Repositories”命令,输入“mongo”,然后选择“Mongo Plugin”,如图3-12和图3-13所示。
安装好后重新启动PyCharm,就可以在右侧看到Mongo Explorer。
如果没有这个窗口,则可以将鼠标光标停留在左下角的图标上,然后在自动弹出的菜单中选择“Mongo Explorer”命令,如图3-14所示。
![img](https://epubservercos.yuewen.com/3DAE1E/17545851106441906/epubprivate/OEBPS/Images/txt003_26.jpg?sign=1738919703-BLyPBbnHK8LYyjeRQCHYllxd1Hw42Dtu-0-92474f2c2b0524558690f8696559c591)
图3-12
![img](https://epubservercos.yuewen.com/3DAE1E/17545851106441906/epubprivate/OEBPS/Images/txt003_27.jpg?sign=1738919703-EmRNIAuLCU2iohjPO5Nkz8ghKpyOgBbl-0-baafb46ee42feaff0bf0f452745584b1)
图3-13
![img](https://epubservercos.yuewen.com/3DAE1E/17545851106441906/epubprivate/OEBPS/Images/txt003_28.jpg?sign=1738919703-jeT20Gdd1Chl6jH1pdnKVYnkiQvCNOEn-0-f127466a1d408087d53573cfb19aadfb)
图3-14
接下来在Mongo Explorer窗口中单击设置按钮,创建连接(通过PyCharm File菜单中的Settings也可以设置),如图3-15所示。
![img](https://epubservercos.yuewen.com/3DAE1E/17545851106441906/epubprivate/OEBPS/Images/txt003_29.jpg?sign=1738919703-C1SXR47J8sKt5ITGqyboX3sAC0uoD3wW-0-c8082d990307dfa1f54b274f14c20bd6)
图3-15
在Mongo Servers设置窗口中单击左侧的加号按钮(addServer),如图3-16所示。
![img](https://epubservercos.yuewen.com/3DAE1E/17545851106441906/epubprivate/OEBPS/Images/txt003_30.jpg?sign=1738919703-lOONl072XvukOgaNq9KjaUMuQaHfyrM8-0-944b4509a7e054b9a428e0aa43acfb9b)
图3-16
输入连接名,单击“Test Connection”(测试连接)按钮,当提示信息为“Connection test successful”时表示连接正常,然后单击“OK”按钮保存设置即可,如图3-17所示。
![img](https://epubservercos.yuewen.com/3DAE1E/17545851106441906/epubprivate/OEBPS/Images/txt003_31.jpg?sign=1738919703-Emn2yr48LeTVIqmqNdkzUlTtS1cuP8EJ-0-ccb59fd27244645bfb66127b378cb62a)
图3-17
3.3.3 将数据存入MongoDB中
下面尝试将获取的数据存入MongoDB中,首先输入以下代码。
![img](https://epubservercos.yuewen.com/3DAE1E/17545851106441906/epubprivate/OEBPS/Images/txt003_32.jpg?sign=1738919703-V9m2MQv5hWv9XF7cXWKZ1L9rgXYtmEjG-0-1bfee160ade033f7c7024f189a11e240)
运行后双击连接,可以看到名为weather的数据库,如图3-18所示。
![img](https://epubservercos.yuewen.com/3DAE1E/17545851106441906/epubprivate/OEBPS/Images/txt003_33.jpg?sign=1738919703-xQJzhFLp8qSfCVPPPyu3x4E5KrqUR3s7-0-bffd4c39b6daf4ed2ae38eeef46b3545)
图3-18
展开weather数据库,双击sheet_weather_3这张表(见图3-19(b)),会弹出预览窗口(见图3-19(a)),可以从该窗口中观察获取到的天气预报数据,数据以JSON格式存储在数据库中。
![img](https://epubservercos.yuewen.com/3DAE1E/17545851106441906/epubprivate/OEBPS/Images/txt003_34.jpg?sign=1738919703-8ILyl7GOfyWxDutJ7uAQV4W9yEPdX171-0-1f55ebdce3ea636e4d13ee3f9c3d15a7)
图3-19
可以直接在预览窗口中展开JSON的树形结构,如图3-20所示。
![img](https://epubservercos.yuewen.com/3DAE1E/17545851106441906/epubprivate/OEBPS/Images/txt003_35.jpg?sign=1738919703-X3IQk9q9FvtbyXrhruq9NMzcoTkZSvSy-0-e5d2bead733a97d2a2e8faa0f7a6ecb1)
图3-20
需要提前安装PyMongo库,这是一个提供Python和MongoDB连接的库,使用方法如下。
1.建立连接
输入以下代码,其中localhost是主机名,27017是端口号(在默认情况下是这个参数)。
![img](https://epubservercos.yuewen.com/3DAE1E/17545851106441906/epubprivate/OEBPS/Images/txt003_36.jpg?sign=1738919703-NBzlN3NyGfMrtCnFCdqP072c6MLVuqHv-0-44e86d4905ba1737cadec74d20e2e121)
2.新建名为weather的数据库
输入以下代码:
![img](https://epubservercos.yuewen.com/3DAE1E/17545851106441906/epubprivate/OEBPS/Images/txt003_37.jpg?sign=1738919703-hyja9f7FYvhhic5Gqo7lg1CW8kCmWbzx-0-8c3488d8479656bfab51624936292115)
3.新建名为sheet_weather_3的表
输入以下代码:
![img](https://epubservercos.yuewen.com/3DAE1E/17545851106441906/epubprivate/OEBPS/Images/txt003_38.jpg?sign=1738919703-5CjCeZbsDsyTx6PRBtwDPwiqz3mWL1ZM-0-292d651784e8a0d5fd471513e3125aed)
4.写入数据
输入以下代码:
![img](https://epubservercos.yuewen.com/3DAE1E/17545851106441906/epubprivate/OEBPS/Images/txt003_39.jpg?sign=1738919703-h8E3L15vGokALq5PEe4rtKw8jwCr8LCT-0-f5231d7cc84507fef88e566e2d4c3100)