1. 程式人生 > >HousePrice of big city with python crawl in lianjia

HousePrice of big city with python crawl in lianjia

非常感謝原作者 @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原作者(城市還在不斷更新)

想想這個房價,心裡還是比較難受的,努力吧!!!!!