前言
在上一章中,我們提取的南京二手房信息,并將其保存在MongoDB中仓洼,此篇介陶,我們提取MongoDB中的數據以便進行數據處理的操作。
MongoDB&Python
MongoDB的操作比較簡單色建,可以參照Python連接MongoDB操作哺呜,此處不再贅述,具體見代碼:
from pymongo import MongoClient
import pandas as pd
# 運行 mongod 實例創(chuàng)建一個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))
數據已保存在當前目錄內
另澳厢,如果有任何問題,歡迎郵件交流:myprojtest@163.com囚似。
爬蟲系列文章:
南京鏈家爬蟲系列文章(一)——工具篇
南京鏈家爬蟲系列文章(二)——scrapy篇
南京鏈家爬蟲系列文章(三)——MongoDB數據讀取
南京鏈家爬蟲系列文章(四)——圖表篇