南京链家爬虫系列文章(三)——MongoDB数据读取

前言

在上一章中,我们提取的南京二手房信息,并将其保存在MongoDB中,此篇,我们提取MongoDB中的数据以便进行数据处理的操作。

MongoDB&Python

MongoDB的操作比较简单,可以参照Python连接MongoDB操作,此处不再赘述,具体见代码:

from pymongo import MongoClient
import pandas as pd

# 运行 mongod 实例创建一个MongoClient
# client = MongoClient() # 连接默认主机和端口
client = MongoClient('localhost', 27017) # 明确指定主机和端口
# client = MongoClient('mongodb://localhost:27017/') # 使用MongoDB URI格式

# db = client.lianjiaone # 使用MongoClient实例上的属性的方式来访问数据库
db = client['lianjia'] # 如果数据库名称使用属性方式访问无法正常工作(如:lianjiaone),则可以使用字典样式访问

# collection = db.BOOK # 集合是存储在MongoDB中的一组文档,可以类似于关系数据库中的表。 在PyMongo中获取集合的工作方式与获取数据库相同
collection = db['nanjing'] # 使用字典方式访问

print("posts count is = ", collection.count()) # 得到一个集合中的所有文档的计数
# print(collection.find_one()) # 查询一条数据,使用find_one()
num=1
data={}
for collin in collection.find(): # 查询所有数据,使用find()
    for key, value in collin['base_info'].items():
        collin[key] = value
    del collin['base_info'] # 因为提取的信息中base_info和CommunityInfo是字典类型,包含很多值,因此单独提取出来
    try:
        for key, value in collin['CommunityInfo'].items():
            collin[key] = value
        del collin['CommunityInfo']
    except Exception:
        pass
    data[num]=collin
    num=num+1
# 保存数据
df = pd.DataFrame(data).T
df.to_csv('nanjing.csv',encoding='utf-8_sig') # 通过encoding解决保存中文乱码问题
print('总二手房信息条目:%d'% len(data))

数据已保存在当前目录内

另,如果有任何问题,欢迎邮件交流:[email protected]
爬虫系列文章:
南京链家爬虫系列文章(一)——工具篇
南京链家爬虫系列文章(二)——scrapy篇
南京链家爬虫系列文章(三)——MongoDB数据读取
南京链家爬虫系列文章(四)——图表篇

你可能感兴趣的:(南京链家爬虫系列文章(三)——MongoDB数据读取)