当前位置: 首页 > news >正文

【优秀python案例】基于python爬虫的深圳房价数据分析与可视化实现

现如今,房价问题一直处于风口浪尖,房价的上涨抑或下跌都牵动着整个社会的利益,即便是政府出台各种政策方针也只能是暂时抑制楼市的涨势,对于需要买房的人来说,除了关注这些变化和政策外,还有一个非常头疼的问题,在哪里买房,房价怎样。一般的人会不停花大量精力逛链家、安居客等房地产网站,借助他们展示的内容进行筛选,但因地区众多,各个地段、房价差异的对比以及入手时机的把握,都得自己去一个个查阅与分析,非常麻烦。倘若可以通过数据的爬取,再按照自己希望的维度统计、分析与展示,会让数据变得清晰明了。本项目旨在提取并展示数据,为刚需购房者提供有用信息。

1爬取房价数据

1.1 网页数据爬取

爬取某个网页的房价要查看那个网页的信息,我们爬取链家网站上的深圳二手房,打开链家网页:深圳深圳二手房房源_深圳深圳二手房出售|买卖|交易信息(深圳链家)用F12以页面中元素进行检查

分析html代码,了解页面结构,然后获取你需要爬取内容在html代码中的路径,再稍微做些整理,就可以得到你想要爬取的内容,主要用的是beautifulsoup。我们要爬取深圳各行政区的房价数据,首先在Python里面编辑行政列表。

 

在爬取数据之前,我们需要设置请求头headers信息。包括User-Agent和Cookie。有些网站设置了反爬,因此我们需要让爬虫更好的模仿人类的操作。设置User-Agent可以让网站确定是人们在操作,设置Cookie是为了让浏览器保留我们操作后的信息,增加爬虫几率。具体的爬虫代码如下:

1.2 数据展示与处理

爬取网页中每个房价的字段信息包括位置,总价,每平米价格,面积,几室几厅等等。

爬取的数据,保存在python文件,然后对数据进行展示

因为直接爬取的数据,不能用来分析,还需要对数据进行简单处理,比如,具体信息这个字段包含很多详细的信息,所以要对这个数据信息进行提取,处理后的数据如下图所示。

2. 数据分析与可视化

2.1数据变量

查看数据中每个变量的类型,如下图所示。

查看是否有缺失值,代码如下图所示,可以看到数据中存在缺失数据,我们对缺失的数据用0值填充。

2.2 变量分析与可视化

 在数据分析之前,我们导入必要的库函数,如pandas numpy和matplotlib等工具。

接下来对变量进行查看,对部分数值数据进行展示。

对爬取的数据部分特征进行分析,首先对房子每平米的价格分析,可以看到

均价是在59598元每平方米,最小的价格是10000每平米

   对这个数据画图展示,如下图所示,大部分房子的均价在60000元每平米左右。

对每个行政区的房子均价进行分析,可以看到,福田区的房价是在最高的,南山是第二高,盐田区是第三高的

对每套房屋的总价进行分析,代码如下图所示,可以看到深圳市每套房的均价是626万,最高可达6800多万,通过绘图可以看到,每套房均价在600万和700万附近。

对每个地区的房屋总价进行分析,可以看到南山区的每套房子是最高的,盐田区靠近郊区,所以房价排名最后。

对房屋的建筑时间进行分析,可以看到最早的房子是1981年建造的,最晚是今年2022年建筑的。绝大部分房子基本在2005年建成。

对房屋的面积进行分析,全市的房子的面积在100平方左右。

  对深圳市各个位置的房子出售量进行分析,可以看到南山中心的出售房子是最多的,其次是沙头角、莲塘、蛇口等等地区,如果需要看房可以多去这些地方。

对房子的样式进行分析,绝大部分是塔楼结合或者是塔楼的样式,个别还有别墅出售的,但是数量很少。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Leetcode3227. 字符串元音游戏
  • 国产版Sora复现——智谱AI开源CogVideoX-2b 本地部署复现实践教程
  • C++速学day1
  • 做不好PPT的原因
  • 左手坐标系、右手坐标系、坐标轴方向
  • thinkphp之命令执行漏洞复现
  • SpringBoot入门、进阶、强化、扩展、知识体系完善等知识点学习、性能优化、源码分析专栏分享
  • LLaMA- Adapter V2: Parameter-Efficient Visual Instruction Model
  • AI在招聘市场趋势分析中的应用
  • 完美解决pip命令版本冲突导致对应版本模块包无法安装的问题
  • PHP进阶-CentOS7部署LNMP服务架构的项目
  • Swift 析构过程
  • 初步认识vue
  • android studio 无法识别androidTest模块Test模块
  • Linux 内核源码分析---I/O 体系结构与访问设备
  • [译]CSS 居中(Center)方法大合集
  • IP路由与转发
  • js
  • JS变量作用域
  • LeetCode29.两数相除 JavaScript
  • leetcode378. Kth Smallest Element in a Sorted Matrix
  • LeetCode算法系列_0891_子序列宽度之和
  • Mithril.js 入门介绍
  • MQ框架的比较
  • Objective-C 中关联引用的概念
  • PHP面试之三:MySQL数据库
  • Python_网络编程
  • Swoft 源码剖析 - 代码自动更新机制
  • thinkphp5.1 easywechat4 微信第三方开放平台
  • web标准化(下)
  • 基于遗传算法的优化问题求解
  • 检测对象或数组
  • 浏览器缓存机制分析
  • 算法系列——算法入门之递归分而治之思想的实现
  • 详解移动APP与web APP的区别
  • 项目管理碎碎念系列之一:干系人管理
  • 小李飞刀:SQL题目刷起来!
  • Java数据解析之JSON
  • 交换综合实验一
  • #LLM入门|Prompt#1.7_文本拓展_Expanding
  • #QT(QCharts绘制曲线)
  • #systemverilog# 之 event region 和 timeslot 仿真调度(十)高层次视角看仿真调度事件的发生
  • (32位汇编 五)mov/add/sub/and/or/xor/not
  • (二十三)Flask之高频面试点
  • (附程序)AD采集中的10种经典软件滤波程序优缺点分析
  • (一)C语言之入门:使用Visual Studio Community 2022运行hello world
  • (转)视频码率,帧率和分辨率的联系与区别
  • (自用)learnOpenGL学习总结-高级OpenGL-抗锯齿
  • *** 2003
  • .Net Core 微服务之Consul(三)-KV存储分布式锁
  • .NET Micro Framework 4.2 beta 源码探析
  • .NET 给NuGet包添加Readme
  • .NET 简介:跨平台、开源、高性能的开发平台
  • .NET/C# 使用反射调用含 ref 或 out 参数的方法
  • .Net6 Api Swagger配置