当前位置: 代码迷 >> 综合 >> HousePrice of big city with python crawl in lianjia
  详细解决方案

HousePrice of big city with python crawl in lianjia

热度:94   发布时间:2023-11-29 16:51:23.0

非常感谢原作者 @author: Zeng YueTian

原文链接https://github.com/jumper2014/lianjia-spider

本人github地址:  https://github.com/GeekDengshuo/Houseprice-of-bigcity--lianjia-python-crawl

之前看过一篇比较火的github上指导如何在杭州买房(经验),真的是被感触到,看到这个项目就是想看看大城市的房价,到底是个什么样的状态?听说北京程序员一个月工资七万可以落户北京了!

附上杭州买房必看链接:点击打开链接

https://github.com/houshanren/hangzhou_house_knowledge

在浏览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] = districtprint("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 = 50pool = 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原作者(城市还在不断更新)

想想这个房价,心里还是比较难受的,努力吧!!!!!