Python抓取上海各地区房价平均值

作者:司开星

http://blog.csdn.net/chroming/article/details/46471155

Python写了一个抓取上海地区二手房价格的程序,Python2.7,数据来自赶集网。由于在赶集网查看房价不需要登录,所以程序也十分简单。程序代码如下:

源代码托管在:https://github.com/chroming/sh_house_price/

# -*- coding:utf-8 -*-import requestsimport re#本程序用于抓取赶集网上海各地区二手房房价均值,默认抓取页数为50页。#使用python语言,requests库抓取网页,re库用于正则抓取。print "本程序用于计算赶集上海二手区房价,单位万/平米"print ('''每个区对应代码如下:
0:显示上海所有区单独的平均房价;
1:浦东新区;
2:闵行区;
3:徐汇区;
4:长宁区;
5:普陀区;
6:静安区;
7:卢湾区;
8:黄浦区;
9:闸北区;
a:虹口区;
b:杨浦区;
c:宝山区;
d:嘉定区;
e:青浦区;
f:松江区;
g:金山区;
h:奉贤区;
i:南汇区;
j:崇明区;
k:上海周边;
''')#各地区页面代码num_area = {    '1':'http://wap.ganji.com/sh/fang5/pudongxinqu/o',    '2':'http://wap.ganji.com/sh/fang5/minhang/o',    '3':'http://wap.ganji.com/sh/fang5/xuhui/o',    '4':'http://wap.ganji.com/sh/fang5/changning/o',    '5':'http://wap.ganji.com/sh/fang5/putuo/o',    '6':'http://wap.ganji.com/sh/fang5/jingan/o',    '7':'http://wap.ganji.com/sh/fang5/luwan/o',    '8':'http://wap.ganji.com/sh/fang5/huangpu/o',    '9':'http://wap.ganji.com/sh/fang5/zhabei/o',    'a':'http://wap.ganji.com/sh/fang5/hongkou/o',    'b':'http://wap.ganji.com/sh/fang5/yangpu/o',    'c':'http://wap.ganji.com/sh/fang5/baoshan/o',    'd':'http://wap.ganji.com/sh/fang5/jiading/o',    'e':'http://wap.ganji.com/sh/fang5/qingpu/o',    'f':'http://wap.ganji.com/sh/fang5/songjiang/o',    'g':'http://wap.ganji.com/sh/fang5/jinshan/o',    'h':'http://wap.ganji.com/sh/fang5/fengxian/o',    'i':'http://wap.ganji.com/sh/fang5/nanhui/o',    'j':'http://wap.ganji.com/sh/fang5/chongming/o',    'k':'http://wap.ganji.com/sh/fang5/shanghaizhoubian/o'}#各地区显示代码area = {    '1':'浦东新区',    '2':'闵行区',    '3':'徐汇区',    '4':'长宁区',    '5':'普陀区',    '6':'静安区',    '7':'卢湾区',    '8':'黄浦区',    '9':'闸北区',    'a':'虹口区',    'b':'杨浦区',    'c':'宝山区',    'd':'嘉定区',    'e':'青浦区',    'f':'松江区',    'g':'金山区',    'h':'奉贤区',    'i':'南汇区',    'j':'崇明区',    'k':'上海周边'}#获得房价均值函数def get_price(numb):
    sp_list = []    for n in range(1,50): #抓取前50页
        url = num_area[numb]+str(n)
        urlpage = requests.get(url)
        urlpage.encoding = 'utf-8'
        urltx = urlpage.text

        size_price = re.findall(u'(\d+)\u33a1.*?(\d+)\u4e07\u5143',urltx,re.S)#从页面获取房价和面积
        for sp in size_price:
            sp_list.append(sp)

    priclist = []
    sum_pric = 0
    i = 0
    for sizepri in sp_list:#计算平均房价
        pric = round(float(sizepri[1])/float(sizepri[0]),2)      
        #print pric
        priclist.append(pric)
        sum_pric = sum_pric + pric
        i = i + 1

    print (area[numb]+"共获取二手房数量:"+str(i)+",平均房价为:"+str(round(float(sum_pric)/float(i),2))+"万元每平方")#获取输入区域def get_area():
    print('')
    areanum = str(raw_input("请输入需要查询的区代码,可一次输入多个代码:"))    if str(0) in areanum:#输入有0则计算全部区域
        for numbe in ('1','2','3','4','5','6','7','8','9','a','b','c','d','e','f','g','h','i','j','k'):
            get_price(numbe)    else:#输入无0则计算输入区域
        for numb in ('0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f','g','h','i','j','k'):            if str(numb) in areanum:                print numb
                get_price(numb)

get_area()

源代码托管在:https://github.com/chroming/sh_house_price/

不过由于赶集网二手房的内容基本都是广告,而且应该是官方合作的广告,因为所有页的数据都一直在变动。不过这不妨碍我们用它练手。当前抓取到的价格如下:

浦东新区共获取二手房数量:655,平均房价为:3.35万元每平方 闵行区共获取二手房数量:640,平均房价为:2.52万元每平方 徐汇区共获取二手房数量:640,平均房价为:3.95万元每平方 长宁区共获取二手房数量:643,平均房价为:3.57万元每平方 普陀区共获取二手房数量:647,平均房价为:2.91万元每平方 静安区共获取二手房数量:559,平均房价为:5.19万元每平方 卢湾区共获取二手房数量:576,平均房价为:4.86万元每平方 黄浦区共获取二手房数量:638,平均房价为:4.42万元每平方 闸北区共获取二手房数量:640,平均房价为:3.23万元每平方 虹口区共获取二手房数量:641,平均房价为:3.15万元每平方 杨浦区共获取二手房数量:647,平均房价为:3.1万元每平方 宝山区共获取二手房数量:650,平均房价为:2.16万元每平方 嘉定区共获取二手房数量:644,平均房价为:1.47万元每平方 青浦区共获取二手房数量:641,平均房价为:1.51万元每平方 松江区共获取二手房数量:640,平均房价为:1.68万元每平方 金山区共获取二手房数量:638,平均房价为:0.81万元每平方 奉贤区共获取二手房数量:638,平均房价为:2.98万元每平方 南汇区共获取二手房数量:640,平均房价为:1.9万元每平方 崇明区共获取二手房数量:637,平均房价为:0.91万元每平方 上海周边共获取二手房数量:647,平均房价为:0.61万元每平

原文发布于微信公众号 - 大数据挖掘DT数据分析(datadw)

原文发表时间:2016-07-02

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏机器之心

资源 | 免费乳腺癌X光片检测:网友50块GPU搭建AI医疗图像早筛平台

去年的时候,我一个在芝加哥比我小几级的南京大学校友去世了。乳腺癌,发现得晚了,才 34 岁,留下了一个 4 岁的孩子。非常可惜。想想能不能做点什么事情可以帮助大...

960
来自专栏量子位

苹果又发布一个机器学习框架,帮自家生态里的开发者降低AI门槛

李林 编译整理 量子位 出品 | 公众号 QbitAI 苹果又在GitHub上发布了一个新的机器学习框架。 这次的新框架名叫Turi Create,针对不那么精...

39510
来自专栏吉浦迅科技

用NVIDIA Jetson开发智能安全系统

JETSONAR智能安全系统旨在在有噪音的地方产生广泛的影响。而且我们身边到处都是噪音。

742
来自专栏VRPinea

《谷歌地球VR》迎来全新更新,新增大量街景图像

3497
来自专栏BestSDK

Valve 推出 Steam Audio SDK,支持Unity

Valve 近日宣布推出 Steam Audio SDK,这是一款V社称为“增强所有互动的产品,特别是VR应用”的空间音频插件。该公司已经推出了SDK的测试版,...

2575
来自专栏数据派THU

福利 | 放送AI华人库试用名额!专项代码找到领域专家

如今,人工智能领域发展如火如荼,国家也高度重视人工智能的发展,自然基金委成立了人工智能的专项代码F06,我们做了一个很有意思的尝试,首先通过在相关领域发表的论文...

761
来自专栏全栈数据化营销

微信公众号数据分析:内容偏差是不增粉的主要原因

之前对一家做超市的微信公众号数据做了分析,首先是把公众号数据导出,在做了数据处理之后,对这些数据做了聚类分析,在尝试了多次的聚类之后,发现把类别分为5类,聚类的...

1495
来自专栏量子位

OpenAI推出开源机器人模拟软件Roboschool(附代码)

李林 编译自 OpenAI 量子位 报道 | 公众号 QbitAI 今天,马斯克和YC总裁Altman等硅谷名流共同创办的人工智能非营利组织OpenAI发布了一...

3229
来自专栏WOLFRAM

Wolfram Mathematica 使用入门培训

1003
来自专栏新智元

【永久免费使用谷歌GPU】英伟达可能要发布专用于挖矿的GPU

新智元编译 来源:Hackernoon 作者:Nick Bourdakos 编译:刘小芹、克雷格 【新智元导读】用CPU训练机器学习模型太耗时但GPU又...

3137

扫码关注云+社区