Python採集3000條北京二手房資料,看我都分析出了啥?

傑華園發表於2021-03-04

最近呢,對鏈家平臺上的北京二手房資料做了個視覺化分析,對目前北京的二手房交易情況有了個大致瞭解,最終得到一個很實在的結論:奮鬥一輩子也買不到一個廁所這句話不是騙人的,是真的;關於具體分析內容請看下文

1、工具說明

本文用到的 Python 庫有

Python採集3000條北京二手房資料,看我都分析出了啥?

外加百度地圖 API

2、資料採集

所有資料來源於鏈家二手房交易平臺,上面每頁排列 30 條二手房資料,本文采集了前 100 頁 資料,每條二手房交易資料中提取 標題、單價、價格、地址、年份、房間樣式 等欄位作為視覺化分析的資料來源

Python採集3000條北京二手房資料,看我都分析出了啥?

網站沒有設定很強的反爬機制, 爬取時用的是 requests + Cookies+ PyQuery 組合即可,最好在爬取時加條 time.sleep() 命令,隔幾秒休眠一次,部分程式碼如下:

Python採集3000條北京二手房資料,看我都分析出了啥?

最終一共採集到 3000 條資料:

Python採集3000條北京二手房資料,看我都分析出了啥?

3、地址經緯度座標轉換

獲取到的資料是地址是字串形式(例如梵谷水郡*酒仙橋),後面地圖位置標記時需要經緯度資料,需要把所有地址轉化為經緯度座標,這裡藉助了百度地圖 API 完成這步操作

1、百度地圖 AK 申請

API 的使用需要在百度地圖開放平臺申請一個 AK 效驗碼,登入自己的百度賬號,在控制檯建立一個應用,

控制檯皮膚-> 我的應用-> 建立應用

Python採集3000條北京二手房資料,看我都分析出了啥?

其他引數預設,應用名稱自定義命名即可,IP 白名單填入 0.0.0.0/0,點選提交

Python採集3000條北京二手房資料,看我都分析出了啥?

以上步驟操作完之後,控制檯皮膚會多出一個應用,就是剛剛我們建立的,

Python採集3000條北京二手房資料,看我都分析出了啥?

2、地址經緯度座標轉換

獲取到你的 AK 引數之後,把 AK 和 address(中文地址) 作為引數傳入下面函式中,就能獲取到對應的經緯度座標

def get_location(address,AK):    #根據地址轉化為經緯度    try:
        url = '{}&output=json&ak={}&callback=showLocation'.format(address,AK)
        res_test = requests.get(url).text
        res = re.search('\((.*?)\)', res_test).group(0).strip('(').strip(')')
        lng = json.loads(res)['result']['location']['lng']
        lat = json.loads(res)['result']['location']['lat']
        print(lng, lat)
        return lng, lat
    except Exception as e:
        print('error ---------\n')
        return None

百度地圖 API 的 地址經緯度轉換 功能 定位不僅僅侷限於省、市,還能定位到門牌號,只要你提供的地址越詳細,獲取的經緯度資訊越準確

Python採集3000條北京二手房資料,看我都分析出了啥?

4、視覺化分析

這一部分進入視覺化分析內容,城市畢竟是北京麼所以首要的就是關注房價問題,在抓取的資料中,最高的將近19萬+/每平方,最低的僅有 1.5 萬/每平方

Python採集3000條北京二手房資料,看我都分析出了啥?

我看到 1.5 萬每平方就不淡定了,這資料肯定有貓膩(北京房價按常理不可能這麼低);為了驗證想法,首先做了房產地段標記

先看一下排名前十的:

Python採集3000條北京二手房資料,看我都分析出了啥?

Python採集3000條北京二手房資料,看我都分析出了啥?

上面是房價最高 Top10 的地段位置,看起來地理位置還行,都是在三環四環之內、分佈在市中心附件,如果單看這張圖的地圖的話得不到有用的資訊,可以對比一下 房價最低 Top10

下面是排名倒數前十的

Python採集3000條北京二手房資料,看我都分析出了啥?

Python採集3000條北京二手房資料,看我都分析出了啥?

上面北京二手房房價排名後十 地段分佈,房價在 1.5萬-3萬 不等,沒看到這個分佈圖之前僅僅認為上面價格是賣家標錯了,看完這個圖後才發現賣家是 掛著羊頭賣狗肉,掛著北京的名號,賣著北京以外的房子(有的房子已經位於河北境內),這可能就是賣房的套路之一吧

事出反常必有妖,無論買房還是買其他商品也好,賣家不會平白無故地給我們優惠,當價格遠低於市場價之前交易需慎重、慎重、再慎重!

房價我分為 5 個區間,分別為 0-3萬、3-8萬、8-12萬、12-15萬,15萬+ 五段,看一下各自的佔比分佈

Python採集3000條北京二手房資料,看我都分析出了啥?

其中房價位於 3-8萬 佔比最大達 76 %佔比,次之就是8-12萬、12-15萬,依次佔比為16.38%、3.46%,而房價位於 15 萬 + 佔比最少,僅有1.12% 左右;

接下來我們再看一下,不同價位二手房在北京的分佈

15萬+的

Python採集3000條北京二手房資料,看我都分析出了啥?

12-15萬

Python採集3000條北京二手房資料,看我都分析出了啥?

8-12萬

Python採集3000條北京二手房資料,看我都分析出了啥?

3-8萬

Python採集3000條北京二手房資料,看我都分析出了啥?

Python採集3000條北京二手房資料,看我都分析出了啥?

從地段分佈來看北京房價以8萬作為分水嶺,8萬+和8萬以內房產分佈明顯變化,價格越高,越靠市中心以外;從地圖資訊來看,想在北京買一套地段不錯的房子,預期房價最低也要在8萬+,8 萬是什麼概念,也就說如果你想在北京買一套50平米的房子,最低也要 400萬!

關於15萬+ 的房產,大致都分佈兩個區域,一個是高校區(周圍是人大、北航、清華等高校),另一個位於右下角,也就是北京朝陽區

Python採集3000條北京二手房資料,看我都分析出了啥?

北京賣的二手房不一定都是裝修之後的,有可能也是毛坯(剛建造交付之後,未進行任何裝修);參考下圖,北京二手房中毛坯佔比約1.39%共41套,戶主買來這些房子大機率用於資產增值而不是作為剛需;

Python採集3000條北京二手房資料,看我都分析出了啥?

藉助 Treemap 圖再看一下北京二手房建築時間分佈,大部分都集中於2002-2010 這 9 年,北京房產也是在這段期間迅速發展, 到 2015 年之後明顯收緩,源於可建築地段已經達到飽和再加上國家相關政策的施壓

Python採集3000條北京二手房資料,看我都分析出了啥?

最後貼張詞雲圖作為本文的結束,選取的文字資訊為3000條房產資訊的標題,從圖中來看,標題中高頻詞彙有 南北通透、高樓層、精裝修、採光好 等,也可以說這幾個特點也是大多數房源的最大賣點(拋去價格、地段等因素)

Python採集3000條北京二手房資料,看我都分析出了啥?

5、小總結

本文針對北京二手房的分析角度並不全面,僅僅圍繞著房價、地段、修建年份等幾個維度做了簡單分析,分析結果僅供學習,其資料真實性有考察

好了以上就是本文的全部內容,最後感謝大家的閱讀,我們下期見~


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/21472864/viewspace-2761265/,如需轉載,請註明出處,否則將追究法律責任。

相關文章