最近在学习python,不禁感叹其强大的数据处理能力,简单几句代码即可从互联网中获取千万数据。生活在这个数据为王的时代,我们需要学习着如何将数据为我所用。

作为一个两年研发三年产品的互联网青年,依然对苏州房价望而却步。房价天天涨,刚需勇可追,但是什么时候买?买哪里?价格如何?是最值得关心的几个问题,下面技术小哥哥附身,用技术和数据给你一个答案。

技术环境

环境:python3.6

引用模块:

urllib ——urllib提供了一系列用于操作URL的功能,urllib的request模块可以非常方便地抓取URL内容

BeautifulSoup ——可以从HTML或XML文件中很方便的提取数据

xlwt ——用于操作Excel将抓取的数据存储到Excel

数据图表:hcharts

获取苏州各区十年内房价数据

一、页面请求

安居客上提供了从2009年到现在苏州的房价数据,就看上了这部分数据,开始爬虫之旅。现在爬虫肆虐,很多网站都有防爬虫机制,有防的方式也有攻的方法,道高一尺魔高一丈,攻防较量不相上下。安居客上也有防御机制,第一次请求ip就被封了,以为不能爬了,几个小时后ip被释放了,python模拟浏览器请求,可正常抓取,没想到其防御机制不过如此而已。

#请求页面数据

def request_href(url):

#模拟浏览器请求

header = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.96 Safari/537.36'}

req = request.Request(url, headers=header)

resp = request.urlopen(req).read()

#网页数据保存到本地

#fhandle = open("./anjuke.html", "wb")

#fhandle.write(resp)

#fhandle.close()

return resp

二、数据解析

数据能够抓取到本地,就已经是成功打开了数据世界的大门,剩下的就是解析数据,分析页面获得需要的数据字段,逐个字段分析,这里数据解析使用的BeautifulSoup,它可以检索出整个页面中任何一个你所需要的字段,一层层剥去HTML的外衣,剩下的就是赤裸裸的数据。

'''

安居客房价走势数据

'''

#获取安居客苏州每个区域房价走势地址

def get_anjuke_trend_href():

url="https://www.anjuke.com/fangjia/suzhou2018/"

resp = request_href(url)

soup = BeautifulSoup(resp,"html.parser")

areas_hrefs=soup.find("span",class_="elem-l").find_all("a")

href_list=[url]

for item in areas_hrefs:

href_list.append(item.get("href"))

return href_list

#解析每个区 每年数据

def get_price_trend():

href=get_anjuke_trend_href()

workbook=xlwt.Workbook(encoding='utf-8') #创建工作簿

area_flag=''

for area in href:

area_all_price=[]

for year in range(2018,2008,-1):

url=area.replace(str("2018"), str(year), 2)

resp = request_href(url)

soup = BeautifulSoup(resp,"html.parser")

year_price=soup.find(class_="fjlist-box boxstyle2").find_all("li")

for mounth in year_price:

m_data=mounth.find_all(["b","span","em"])

y=m_data[0].string.split("年")

m=y[1].split("月")

price_info=m_data[1].string.split("元")

price=price_info[0]

price_unit='元/㎡'

if(len(price_info)>1):

price_unit="元"+ price_info[1]

a=url.split("/")

area_flag=a[len(a)-2]

m_datas=(m_data[0].string,price,price_unit,m_data[2].string,y[0]+"-"+m[0],area_flag,url)

area_all_price.append(m_datas)

save_area_price(workbook,area_flag,area_all_price)

三、数据存储

数据解析为我所需要的信息,剩下就是存储了,之前练习的时候有将爬取的数据存到MySql中,本次为了便于简单分析,直接将抓取的数据存储的Excel中,使用了xlwt 模块,简单几行代码就能将数据存储起来,非常方便。

#保存价格数据,每个区域一个sheet

def save_area_price(workbook,area_flag,area_all_price):

booksheet=workbook.add_sheet(area_flag, cell_overwrite_ok=True) #创建sheet

#表头

title=(u'日期',u'单价',u'单位',u'升降',u'年月',u'区域',u'地址')

area_all_price.insert(0,title)

#生成数据行内容

for row in range(0,len(area_all_price)):

for col in range(0,len(area_all_price[row])):

booksheet.write(row,col,area_all_price[row][col])

workbook.save('D:\python\安居客苏州房价走势数据3.xls') #保存文件

print("保存成功:"+str(len(area_all_price)))

苏州各区10年内房价数据.png

四、数据分析

python本身也有很多包(5大数据分析包:Matplotlib 、Numpy 、Pandas 、Scikit-Learn 、Scipy )可用用于数据分析挖掘,本次没有做过多研究,使用了在线制表软件(数据图表:hcharts)生成了一些可视化的图表,简单做了几个数据趋势分析、占比分析和优势分析。

以下是安居客网站抓取的苏州十年数据,生成的趋势图:

2018最近10年苏州各地区房价走势图.jpeg

此图告诫我们房价犹如登天的梯,无限延伸不见顶端。苏州房价在2016年初经历了一次山洪暴发似的增长,一跃成为新一线城市。因此还是老话说得好,买房要趁早。

另外还抓取了贝壳网目前在售的所有房源信息分析了苏州各区域住宅类房源的均价(排除别墅、商用、写字楼等),目前还算可以接受的属吴江、吴中、相城三个区的房价。

2018年苏州各地区平均房价.jpeg

从目前在售的房源数量上看,吴中和吴江房源数量最多,正在吸收着一批批新苏州人,不断发展壮大的道路上。从地理优势上看濒临上海的吴江似乎更有潜力。

2018苏州各地区在售房源占比.jpeg

以下是贝壳网目前在售的所有新房房源信息(不包含二手房),供计划购房的同志们参考。

贝壳苏州在售住宅类房源.png

总结

什么时候买——如果首付攒够了就现在买吧,观望带来失望。

买哪里——吴江、吴中、相城将是新苏州城,个人更看好吴江。

价格如何——整体来看苏州房价还没那么离谱,该出手时就出手。

尽管国家对房价不断调控,增幅没那么陡峭了,但缓慢上升的趋势不可抑制,毕竟房价的上涨牵动着国家GDP的命脉。

基于python的房价分析论文_[技术篇]2018苏州房价分析-python小白的技术实践相关推荐

  1. python 量化分析 入门_【合辑·收藏】Python量化从入门到精通

    原标题:[合辑·收藏]Python量化从入门到精通 引言 自2018年9月27日发第一篇推文以来,公众号"Python金融量化"专注于分享Python在金融量化领域的实战应用,坚持 ...

  2. 风变编程python论文_如何看待风变编程的 Python 网课?

    作为风变推出的python课程的一名学员,很幸运能与风变相遇,更庆幸自己选择学习python,我学习的是python基础课程和爬虫精进课程,目前已经学完了python基础课程,不得不说对我的感触很深, ...

  3. python在人工智能领域的应用论文_试析人工智能背景下的Python教学

    摘要:在国务院所印发的<新一代人工智能发展规划>中指出"人工智能(ArtificialIntelligence-AI)在未来将成为引领时代发展的重要战略性技术,将成为指引社会经济 ...

  4. python创建类统计属性_轻松创建统计数据的Python包

    python创建类统计属性 介绍 (Introduction) Sometimes you may need a distribution figure for your slide or class ...

  5. python新手入门项目推荐_推荐:一个适合于Python新手的入门练手项目

    随着人工智能的兴起,国内掀起了一股Python学习热潮,入门级编程语言,大多选择Python,有经验的程序员,也开始学习Python,正所谓是人生苦短,我用Python 有个Python入门练手项目, ...

  6. python人生的不同阶段_从入门到入土的Python自学教程,用改变你的人生轨迹

    Python在近几年越来越受追捧,很多童鞋或者职场小伙伴想要提升技能-学习Python. 这是非常好的事情,但问题在于很多人不知道学Python做什么,所以什么零碎细末.艰难晦涩.长篇大论的都去看,很 ...

  7. python运用在哪些地方_必看 | 2020年,Python十大应用领域介绍!

    原标题:必看 | 2020年,Python十大应用领域介绍! python作为一门当下极其火爆的编程语言,得到世界范围内无数编程爱好者和开发者喜欢并不是偶然的,除了要比其他编程语言更容易入门,pyth ...

  8. python深度学习include框架_搞事情。《用Python实现深度学习框架》已出版上架。...

    我和 @张觉非 合作的<用Python实现深度学习框架>一书已经由人民邮电出版社出版上市了.写作本书的缘由,是2017年11月我加入了360,开始负责以机器学习平台为中心的AI技术设施的研 ...

  9. python就业需要的技能_教你如何快速掌握Python就业技能

    -人生苦短,为什么要学Python? 简单易学 应用广泛 大厂青睐 (油管大神评选的2020最值得学就业语言-Python) 因为以上的种种理由,无论是国外还是国内, Python都荣登2020最值得 ...

  10. 11小时 python自动化测试从入门到_自动化测试实战宝典(Robot Framework+Python从小工到专家)...

    目录 第1部分 入门篇 第1章 大话测试行业 1.1 测试行业现状分析 1.2 未来发展趋势 1.3 测试工程师的核心竞争力 1.4 测试知识体系 1.5 测试发展能力图谱及推荐书单 1.6 本章总结 ...

最新文章

  1. 撒花!吴恩达《Machine Learning Yearning》完结!
  2. TCP/IP协议族-----10、搬家IP
  3. jsp或servlet依赖范围不能省略原因
  4. java显示一个钟表_中秋团圆日,月相表来一个呗~
  5. 数据结构---判断一棵树是否是二叉搜索树
  6. 鼠标拖动改变DIV等网页元素的大小的最佳实践
  7. pyecharts x轴字体大小调整_pyecharts 柱状图基础篇#学习笔记#
  8. 1003 Emergency
  9. 炮兵阵地(POJ-1185)
  10. 免费电子书:Azure Web Apps开发者入门
  11. Java swing实现简单的浏览器源码免费分享
  12. TensorFlow 还是 PyTorch?哪一个才更适合编写深度神经网络?
  13. HTML中select的option设置selected=“selected“无效的解决方案
  14. T-SQL Apply的用法
  15. spin_lock的变体
  16. javamailsender注入失败_使用Spring3.x框架的java mail支持来发送邮件
  17. 软件开发中的非功能需求类型
  18. linux自带python3.5_linux上安装python3, 保留python2
  19. 对12w条数据进行相关清理和数据迁移 (数据清理项目实战完整版)文章内有大量sql脚本
  20. 32位电脑和64位电脑

热门文章

  1. linux下使用shred安全地删除文件
  2. pandas数据分析小案例:以美国大选数据为例
  3. DB2 FMP进程共享内存不足
  4. java.sql.SQLException: Incorrect integer value: '' for column 'id' at row 1
  5. mongoDB使用sort按照数字大小排序 解决方法
  6. (C语言)(指针的方式处理)有n个人围成一圈,顺序排号,从第一个人开始报数,凡是报道三的人退出圈子,问最后留下的是原来第几号的那位
  7. SiteView“倾心护航”运营商业务系统
  8. 简析有滤波功能抗谐型智能电容器与普通型号的差异
  9. HTML属性crossorigin和integrity有什么用
  10. C++字符串处理总结(char、string)