
房屋價格數(shù)據(jù)采集與分析
隨著互聯(lián)網(wǎng)的發(fā)展,可供分析的信息越來越多,利用互聯(lián)網(wǎng)上的信息來對生活中的問題做一些簡單的研究分析,變得越來越便利了。本文就從數(shù)據(jù)采集、數(shù)據(jù)清洗、數(shù)據(jù)分析與可視化三部分來看看新的一年里房市的一些問題。
數(shù)據(jù)采集:
數(shù)據(jù)采集即從網(wǎng)頁上采集我們需要的指定信息,一般使用爬蟲實現(xiàn)。當(dāng)前開源的爬蟲非常多,處于簡便及學(xué)習(xí)的目的,在此使用python的urllib2庫模擬http訪問網(wǎng)頁,并BeautifulSoup解析網(wǎng)頁獲取指定的字段信息。本人獲取的鏈家網(wǎng)上的新房和二手房數(shù)據(jù),先來看看原始網(wǎng)頁的結(jié)構(gòu):
首先是URL,不管是新房還是二手房,鏈家網(wǎng)的房產(chǎn)數(shù)據(jù)都是以列表的方式存在,比較容易獲取,如下圖:
其中包含的信息有樓盤名稱、地址、價格等信息,回到原始網(wǎng)頁,看看在html中,這些信息都在什么地方,如下圖:
值得注意的是,原始的html為了節(jié)省傳輸帶寬一般是經(jīng)過壓縮的,不太方便分析,可以借助一些html格式化工具進(jìn)行處理再分析。知道這些信息后,就可以模擬http請求來拉取html網(wǎng)頁并使用BeautifulSoup提取指定的字段了。
fw = open("./chengdu.txt","a+")
index = [i+1 for i in range(32)]
for pa in index:
try:
if pa==1:
url = "http://cd.fang.lianjia.com/loupan/"
else:
url = "http://cd.fang.lianjia.com/loupan/pg%d/"%(pa)
print "request:"+url
req = urllib2.Request( url )
req.add_header("User-Agent","Mozilla/5.0 (Windows NT 6.1;
WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101
Safari/537.36")
req.add_header("Accept","*/*")
req.add_header("Accept-Language","zh-CN,zh;q=0.8")
data = urllib2.urlopen( req )
res = data.read()
#print res
#res = res.replace(" ","")
#print res
#objects = demjson.decode(res)
soup = BeautifulSoup(res)
houseLst = soup.findAll(id='house-lst')
resp = soup.findAll('div', attrs = {'class': 'info-panel'})
for i in range(len(resp)):
name = resp[i].findAll('a', attrs = {'target': '_blank'})[0].text
privice = resp[i].findAll('span', attrs = {'class': 'num'})
privice = privice[0].text
region = resp[i].findAll('span', attrs = {'class': 'region'})
address = region[0].text.split('(')[0]
##解析獲得經(jīng)緯度
location,city,district = getGdLocation(name)
if not location:
location = getBdLocation(address)#自定義函數(shù)
if not location:
continue
formatStr = "%s,%s,%s,%s,%s\n"%(city,district,name,location,privice)
print formatStr
fw.write(formatStr)
except:
pass
fw.close()
數(shù)據(jù)清洗:
數(shù)據(jù)清洗,顧名思義就是將不合規(guī)的數(shù)據(jù)清理掉,留下可供我們能夠正確分析的數(shù)據(jù),至于哪些數(shù)據(jù)需要清理掉,則和我們最終的分析目標(biāo)有一定的關(guān)系,可謂仁者見仁智者見智了。在這里,由于是基于地理位置做的一個統(tǒng)計分析,顯然爬取的地理位置必須是準(zhǔn)確的才行。但由于售房者填寫的地址和樓盤名稱可能有誤,如何將這些有誤的識別出來成為這里數(shù)據(jù)清洗成敗的關(guān)鍵。我們清洗錯誤地理位置的邏輯是:使用高德地圖的地理位置逆編碼接口(地理位置逆編碼即將地理名稱解析成經(jīng)緯度)獲得樓盤名稱和樓盤地址。對應(yīng)的經(jīng)緯度,計算二者對應(yīng)的經(jīng)緯度之間的距離,如果距離值超過一定的閥值,則認(rèn)為地址標(biāo)注有誤或者地址標(biāo)注不明確。經(jīng)過清洗后,獲取到的成都地區(qū)的在售樓盤及房屋數(shù)量總計在3000套的樣子。
經(jīng)過清洗后的數(shù)據(jù)格式為:
包括市、區(qū)、樓盤/房屋名稱、經(jīng)緯度、價格四個維度。
數(shù)據(jù)分析與可視化:
首先是新推樓盤掛牌價格與銷售價格
市中心依然遵循了寸獨存金的原則,銷售價格遠(yuǎn)遠(yuǎn)高于郊縣,一方面原因是位置地段、配套的獨特性,一方面也是由于可供銷售的土地面積、樓盤數(shù)量極為有限。
二手房銷售價格和掛牌數(shù)量
二手房交易重要集中在市區(qū)及一些經(jīng)濟(jì)比較發(fā)達(dá)的郊縣,不同區(qū)縣的價格分化并不大,可能原因是老城區(qū)銷售的二手房存在一部分老房子、同時二手房的價格賣家寫的比較隨意。
二手房數(shù)據(jù)的箱型圖
這個就更為明顯的印證了上面的結(jié)論,主城區(qū)的二手房存在一部分價格遠(yuǎn)低于市場均價的(即老房子),也有一部分價格昂貴的(新房、豪宅)出售,郊縣的價格均方差則會低很多。
房屋銷售熱度的空間可視化
房屋銷售熱度以該區(qū)域的房屋銷售數(shù)量和房屋銷售價格綜合來衡量,計算方式以該區(qū)域銷售的房屋數(shù)量及銷售價格進(jìn)行加權(quán)。
新房銷售熱度
二手房銷售熱度
主城區(qū)沒什么好說的了,人口密度大、買房售房的都多。在南邊有一塊遠(yuǎn)離市區(qū)的地方、新房和二手房的交易熱度都很高,即成都市天府新區(qū),目前配套和各項設(shè)施都不太完善,去這里花高價買房安家的老百姓想必不會太多,猜測是去年炒房熱過年,這些人現(xiàn)在開始出售房屋了。
數(shù)據(jù)分析咨詢請掃描二維碼
若不方便掃碼,搜微信號:CDAshujufenxi
SQL Server 中 CONVERT 函數(shù)的日期轉(zhuǎn)換:從基礎(chǔ)用法到實戰(zhàn)優(yōu)化 在 SQL Server 的數(shù)據(jù)處理中,日期格式轉(zhuǎn)換是高頻需求 —— 無論 ...
2025-09-18MySQL 大表拆分與關(guān)聯(lián)查詢效率:打破 “拆分必慢” 的認(rèn)知誤區(qū) 在 MySQL 數(shù)據(jù)庫管理中,“大表” 始終是性能優(yōu)化繞不開的話題。 ...
2025-09-18CDA 數(shù)據(jù)分析師:表結(jié)構(gòu)數(shù)據(jù) “獲取 - 加工 - 使用” 全流程的賦能者 表結(jié)構(gòu)數(shù)據(jù)(如數(shù)據(jù)庫表、Excel 表、CSV 文件)是企業(yè)數(shù)字 ...
2025-09-18DSGE 模型中的 Et:理性預(yù)期算子的內(nèi)涵、作用與應(yīng)用解析 動態(tài)隨機(jī)一般均衡(Dynamic Stochastic General Equilibrium, DSGE)模 ...
2025-09-17Python 提取 TIF 中地名的完整指南 一、先明確:TIF 中的地名有哪兩種存在形式? 在開始提取前,需先判斷 TIF 文件的類型 —— ...
2025-09-17CDA 數(shù)據(jù)分析師:解鎖表結(jié)構(gòu)數(shù)據(jù)特征價值的專業(yè)核心 表結(jié)構(gòu)數(shù)據(jù)(以 “行 - 列” 規(guī)范存儲的結(jié)構(gòu)化數(shù)據(jù),如數(shù)據(jù)庫表、Excel 表、 ...
2025-09-17Excel 導(dǎo)入數(shù)據(jù)含缺失值?詳解 dropna 函數(shù)的功能與實戰(zhàn)應(yīng)用 在用 Python(如 pandas 庫)處理 Excel 數(shù)據(jù)時,“缺失值” 是高頻 ...
2025-09-16深入解析卡方檢驗與 t 檢驗:差異、適用場景與實踐應(yīng)用 在數(shù)據(jù)分析與統(tǒng)計學(xué)領(lǐng)域,假設(shè)檢驗是驗證研究假設(shè)、判斷數(shù)據(jù)差異是否 “ ...
2025-09-16CDA 數(shù)據(jù)分析師:掌控表格結(jié)構(gòu)數(shù)據(jù)全功能周期的專業(yè)操盤手 表格結(jié)構(gòu)數(shù)據(jù)(以 “行 - 列” 存儲的結(jié)構(gòu)化數(shù)據(jù),如 Excel 表、數(shù)據(jù) ...
2025-09-16MySQL 執(zhí)行計劃中 rows 數(shù)量的準(zhǔn)確性解析:原理、影響因素與優(yōu)化 在 MySQL SQL 調(diào)優(yōu)中,EXPLAIN執(zhí)行計劃是核心工具,而其中的row ...
2025-09-15解析 Python 中 Response 對象的 text 與 content:區(qū)別、場景與實踐指南 在 Python 進(jìn)行 HTTP 網(wǎng)絡(luò)請求開發(fā)時(如使用requests ...
2025-09-15CDA 數(shù)據(jù)分析師:激活表格結(jié)構(gòu)數(shù)據(jù)價值的核心操盤手 表格結(jié)構(gòu)數(shù)據(jù)(如 Excel 表格、數(shù)據(jù)庫表)是企業(yè)最基礎(chǔ)、最核心的數(shù)據(jù)形態(tài) ...
2025-09-15Python HTTP 請求工具對比:urllib.request 與 requests 的核心差異與選擇指南 在 Python 處理 HTTP 請求(如接口調(diào)用、數(shù)據(jù)爬取 ...
2025-09-12解決 pd.read_csv 讀取長浮點數(shù)據(jù)的科學(xué)計數(shù)法問題 為幫助 Python 數(shù)據(jù)從業(yè)者解決pd.read_csv讀取長浮點數(shù)據(jù)時的科學(xué)計數(shù)法問題 ...
2025-09-12CDA 數(shù)據(jù)分析師:業(yè)務(wù)數(shù)據(jù)分析步驟的落地者與價值優(yōu)化者 業(yè)務(wù)數(shù)據(jù)分析是企業(yè)解決日常運(yùn)營問題、提升執(zhí)行效率的核心手段,其價值 ...
2025-09-12用 SQL 驗證業(yè)務(wù)邏輯:從規(guī)則拆解到數(shù)據(jù)把關(guān)的實戰(zhàn)指南 在業(yè)務(wù)系統(tǒng)落地過程中,“業(yè)務(wù)邏輯” 是連接 “需求設(shè)計” 與 “用戶體驗 ...
2025-09-11塔吉特百貨孕婦營銷案例:數(shù)據(jù)驅(qū)動下的精準(zhǔn)零售革命與啟示 在零售行業(yè) “流量紅利見頂” 的當(dāng)下,精準(zhǔn)營銷成為企業(yè)突圍的核心方 ...
2025-09-11CDA 數(shù)據(jù)分析師與戰(zhàn)略 / 業(yè)務(wù)數(shù)據(jù)分析:概念辨析與協(xié)同價值 在數(shù)據(jù)驅(qū)動決策的體系中,“戰(zhàn)略數(shù)據(jù)分析”“業(yè)務(wù)數(shù)據(jù)分析” 是企業(yè) ...
2025-09-11Excel 數(shù)據(jù)聚類分析:從操作實踐到業(yè)務(wù)價值挖掘 在數(shù)據(jù)分析場景中,聚類分析作為 “無監(jiān)督分組” 的核心工具,能從雜亂數(shù)據(jù)中挖 ...
2025-09-10統(tǒng)計模型的核心目的:從數(shù)據(jù)解讀到?jīng)Q策支撐的價值導(dǎo)向 統(tǒng)計模型作為數(shù)據(jù)分析的核心工具,并非簡單的 “公式堆砌”,而是圍繞特定 ...
2025-09-10