HousePrice of big city with python crawl in lianjia
阿新 • • 發佈:2019-02-08
非常感謝原作者 @author: Zeng YueTian
之前看過一篇比較火的github上指導如何在杭州買房(經驗),真的是被感觸到,看到這個專案就是想看看大城市的房價,到底是個什麼樣的狀態?聽說北京程式設計師一個月工資七萬可以落戶北京了!
在瀏覽github專案,看見這個專案 利用Python網路爬蟲爬取鏈家網站上大城市的房價(具體到各個地區,各個小區,是否有二手房銷售) 原作者: Zeng YueTian,https://github.com/jumper2014/lianjia-spider 已經各種庫搭建好 clone 後,將python2,3 版本問題輸出問題進行改正,import urllib2 修改 import urllib.request以及一些print函式問題 程式執行步驟: 1.run xiaoqu.py 輸出: Which city do you want to crawl? bj: 北京, cd: 成都, cq: 重慶, cs: 長沙 dg: 東莞, dl: 大連, fs: 佛山, gz: 廣州 hz: 杭州, hf: 合肥, jn: 濟南, nj: 南京 qd: 青島, sh: 上海, sz: 深圳, su: 蘇州 sy: 瀋陽, tj: 天津, wh: 武漢, xm: 廈門 yt: 煙臺, 輸入 城市的字母縮寫,進行目標城市的房價爬取(城市一直在更新,請關注原作者:https://github.com/jumper2014/lianjia-spider) 2.確定城市後,定位區,再定位區域 利用區域的地址房價的url,訪問鏈家伺服器,進行資料的爬取和下載 http://hz.lianjia.com/xiaoqu/cuiyuan/ http://hz.lianjia.com/xiaoqu/huanglong/ http://hz.lianjia.com/xiaoqu/gudang/ http://hz.lianjia.com/xiaoqu/wulin11/ http://hz.lianjia.com/xiaoqu/wenyixilu/ http://hz.lianjia.com/xiaoqu/changqing1112/ http://hz.lianjia.com/xiaoqu/liushuiyuan/ http://hz.lianjia.com/xiaoqu/zhonganqiao/ http://hz.lianjia.com/xiaoqu/wensan/ http://hz.lianjia.com/xiaoqu/xihujingqu/ http://hz.lianjia.com/xiaoqu/shiqiao/ 3.下載格式儲存為csv格式 : 時間日期,地區,小區名稱,房價,是否有房源 4.這個感覺還是不要太多人看到,估計鏈家的伺服器管理員會將這個request當成惡意攻擊
# ------------------------------- # main函式從這裡開始 # ------------------------------- if __name__ == "__main__": # 讓使用者選擇爬取哪個城市的二手房小區價格資料 prompt = create_prompt_text() city = input(prompt) print('OK, start to crawl ' + get_chinese_city(city)) # 準備日期資訊,爬到的資料存放到日期相關資料夾下 date_string = get_date_string() print('Today date is: %s' % date_string) today_path = create_date_path("lianjia", city, date_string) mutex = threading.Lock() # 建立鎖 total_num = 0 # 總的小區個數,用於統計 t1 = time.time() # 開始計時 # 獲得城市有多少區列表, district: 區縣 districts = get_districts(city) print('City: {0}'.format(city)) print('Districts: {0}'.format(districts)) # 獲得每個區的板塊, area: 板塊 areas = list() for district in districts: areas_of_district = get_areas(city, district) print('{0}: Area list: {1}'.format(district, areas_of_district)) # 用list的extend方法,L1.extend(L2),該方法將引數L2的全部元素新增到L1的尾部 areas.extend(areas_of_district) # 使用一個字典來儲存區縣和板塊的對應關係, 例如{'beicai': 'pudongxinqu', } for area in areas_of_district: area_dict[area] = district print("Area:", areas) print("District and areas:", area_dict) # 準備執行緒池用到的引數 nones = [None for i in range(len(areas))] city_list = [city for i in range(len(areas))] args = zip(zip(city_list, areas), nones) # areas = areas[0: 1] # 針對每個板塊寫一個檔案,啟動一個執行緒來操作 pool_size = 50 pool = threadpool.ThreadPool(pool_size) requests = threadpool.makeRequests(collect_xiaoqu_data, args) [pool.putRequest(req) for req in requests] pool.wait() pool.dismissWorkers(pool_size, do_join=True) # 完成後退出 # 計時結束,統計結果 t2 = time.time() print("Total crawl {0} areas.".format(len(areas))) print("Total cost {0} second to crawl {1} data items.".format(t2 - t1, total_num))
下載的資料儲存為csv格式(data/lianjia/diyu/xiaoqu.csv)
以上海為例(上海浦東)
20180331,浦東,碧雲,信和花園,74988元/m2,9套在售二手房 20180331,浦東,碧雲,碧雲東方公寓,90924元/m2,10套在售二手房 20180331,浦東,碧雲,金橋愛建園,86677元/m2,22套在售二手房 20180331,浦東,碧雲,羅山花苑,95756元/m2,20套在售二手房 20180331,浦東,碧雲,中天碧雲,87514元/m2,7套在售二手房 20180331,浦東,碧雲,曉園,93010元/m2,8套在售二手房 20180331,浦東,碧雲,金橋酒店公寓,75032元/m2,20套在售二手房 20180331,浦東,碧雲,雲間綠大地,134930元/m2,8套在售二手房 20180331,浦東,碧雲,世茂湖濱花園(別墅),75934元/m2,4套在售二手房 20180331,浦東,碧雲,金色碧雲,100974元/m2,10套在售二手房 20180331,浦東,碧雲,維詩凱亞,96599元/m2,4套在售二手房 20180331,浦東,碧雲,碧雲花園,91134元/m2,1套在售二手房 20180331,浦東,碧雲,星雲小區,68428元/m2,3套在售二手房 20180331,浦東,碧雲,品賞碧雲,90512元/m2,4套在售二手房 20180331,浦東,碧雲,銀泰花園(公寓),95480元/m2,3套在售二手房 20180331,浦東,碧雲,鳳凰大廈,76937元/m2,6套在售二手房 20180331,浦東,碧雲,金浦小區(金橋),63916元/m2,6套在售二手房 20180331,浦東,碧雲,百富麗山莊,94959元/m2,2套在售二手房 20180331,浦東,碧雲,銀泰花園(別墅),85655元/m2,1套在售二手房 20180331,浦東,碧雲,金橋路2346弄,59453元/m2,3套在售二手房 20180331,浦東,碧雲,民航大廈,38030元/m2,0套在售二手房 20180331,浦東,碧雲,盈標花園,暫無,0套在售二手房 20180331,浦東,碧雲,碧雲別墅,暫無,0套在售二手房 20180331,浦東,碧雲,黃楊路65弄,暫無,0套在售二手房 20180331,浦東,碧雲,碧雲路1199弄,暫無,0套在售二手房 20180331,浦東,碧雲,羅山路1221號,暫無,0套在售二手房 20180331,浦東,碧雲,雲山路2035弄,暫無,0套在售二手房 20180331,浦東,碧雲,銀東大廈,暫無,0套在售二手房 20180331,浦東,碧雲,碧雲花園伊頓府邸,暫無,0套在售二手房
各位想看看最近房價的可以去github clone 一下專案,建議clone原作者(城市還在不斷更新)
想想這個房價,心裡還是比較難受的,努力吧!!!!!