杭州链家二手房数据分析

杭州链家二手房数据

项目说明

练习爬虫相关技术,从网络上抓取数据,保存到本地csv文件和mongodb数据库I中,参考网络上相关资源实现二手房数据可视化,后面继续完善回归分析部分和预测分析。

项目实现

1. 数据获取

二手房数据可以从网络中获取即通过编写爬虫脚本从链家官网中获取相应数据。二手房数据主要采集房源区县信息、房源小区信息、房源户型、楼层信息、朝向信息、房屋面积信息、房屋建筑时间信息和房屋总价信息。具体实现以代码说明。

1.1 观察页面信息


红色方框中信息需要采集,但是缺少房源区县信息。简单处理方法是获取房源的链接地址,进入相关页面查找详细信息。

在页面中可以发现有目标信息,如果需要详细信息可以下基本信息中获取。

1.2 爬虫实现

基本思路:
使用 requests 请求页面数据,使用xpath解析页面数据获取目标信息,将数据保存到csv文件中和mongodb 数据库中。

  • 定义初始化方法,提供URL和headers信息

    def __init__(self, url, headers):
       """初始化设置"""
       # 访问页面 url地址
       self.url = url
       # request请求头部 headers
       self.headers = headers
  • 定义get_page()方法获取页面内容
    def get_page(self, url, headers):
        """获取页面HTML内容"""
        try:
            # 发送连同headers的request请求,请求方法为get
            response = requests.get(url, headers=headers)
            # 判断返回状态码,若状态码为200,返回页面内容;反之返回None
            if response.status_code == 200:
                return response.text
            else:
                return None
        except RequestException:
            # 当请求异常时,返回None
            return None
  • 定义parse_page()解析页面内容
    selector = etree.HTML(html)
    selector.xpath(‘//li[@class="clear LOGCLICKDATA"]‘)

可以从中筛选出链接信息

根据链接发送请求再抓取目标信息
区县信息

小区信息

户型信息

......
最后使用yield 生成数据

yield {
                "house_id": house_record,
                "link": link,
                "region": region,
                "community": community,
                "layout": layout,
                "floor": floor,
                "direction": direction,
                "renovation": renovation,
                "area": area,
                "year": year,
                "total_price": total_price,
            }

定义save_to_csv()将数据存储到csv文件中

定义save_to_mongo()方法将数据保存到mongodb

为加快执行效率,采用多线程实现

from multiprocessing import Pool
if __name__ == "__main__":
    pool = Pool()
    pool.map(main, [i for i in range(1, 100 + 1)])

2. 数据处理

加载csv数据

在加载数据前需要对数据进行清除,这部分已在Excel中处理完成。

  • 使用pandas读取csv文件

    # 读取数据
    csvfile = "second_hand_house.csv"
    lianjia_data = pd.read_csv(csvfile,dtype={"area":np.float,"year":np.int,"total_price":np.float})
  • 预览数据
  • 查看数据信息

    可以看到数据类型设置已生效,默认数据类型是object,也就是字符串。
  • 添加均价列数据
    lianjia_data["avg_price"] = lianjia_data["total_price"]/lianjia_data["area"]


    均价数据结果小数保留2位

    pd.set_option(‘precision‘, 2)

数据展示

查看杭州各区县均价

查看杭州各区县房源数量

查看户型分布情况

查看房源装修情况

查看下房源建筑时间分布

原文地址:https://blog.51cto.com/12631595/2369965

时间: 2024-10-29 12:02:12

杭州链家二手房数据分析的相关文章

链家二手房成交爬虫

逐渐有了买房的想法,研究一段时间之后,发现各大网站都没有给出一个完整的房价统计数据和走势.好在链家网的每一条二手房成交记录都有对应的网页.如果能把每一套房的成交信息(面积,单价,总价,成交时间,户型,版块,行政区等等)拿到,存入db或者excel中,那么要分析历史走势就容易多了.此程序就是能够抓取链家网二手房成交记录的爬虫 获取所有成交记录url 以成都为例,打开https://cd.lianjia.com/chengjiao/ 可以看到所有已经成交的二手房.每一页显示30个记录,点击记录的标题

Python爬取链家二手房数据——重庆地区

最近在学习数据分析的相关知识,打算找一份数据做训练,于是就打算用Python爬取链家在重庆地区的二手房数据. 链家的页面如下: 爬取代码如下: import requests, json, time from bs4 import BeautifulSoup import re, csv def parse_one_page(url): headers={ 'user-agent':'Mozilla/5.0' } r = requests.get(url, headers=headers) so

链家广州二手房的数据与分析——数据分析2

继续上一篇的工作继续分析广州链家二手房的数据. Normality Test 用nortest package 的 ad.test() 分别对三个主要因素(面积,总价和均价)进行正态分布检验,结果显示这三个变量都不满足正态分布,而 Q-Q Plot 的表现方式就更直观了: 房子的面积 ad.test(house$area) #p-value < 2.2e-16 reject normality qqnorm(house$area) qqline(house$area, col = 2, lwd=

爬取链家任意城市二手房数据(天津)

1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3 # @Time : 2019-08-16 12:40 4 # @Author : Anthony 5 # @Email : [email protected] 6 # @File : 爬取链家任意城市二手房数据.py 7 8 9 import requests 10 from lxml import etree 11 import time 12 import xlrd 13 import o

R语言-上海二手房数据分析

案例:通过分析上海的二手房的数据,分析出性价比(地段,价格,未来的升值空间)来判断哪个区位的二手房性价比最高 1.载入包 library(ggplot2) library(Hmisc) library(car) library(caret) 2.加载数据集 houses <- read.csv('E:\\Udacity\\Data Analysis High\\R\\R_Study\\二手房分析案例\\链家二手房.csv',sep=',',header=T) 3.查看数据集 describe(h

Python高级应用程序设计任务要求(主题链家二手车)

内容简介 链家二手房成交信息(福州) 本文主要使用了multiprocessing模块创建多个进程对象,使用Queue将多个进程联系在一起,也就是线程之间的通信多个对链家的二手房进行数据的爬取,处理,存储等操作. 结构:主从模式: 主控制节点 从爬虫节点 分析与设计 系统主要核心有两大调度器 1.控制调度器 主要负责管理三个进程:一:负责将地址传递给爬虫节点,二:负责读取爬虫节点返回的数据,三:负责将数据提取进程中提交的数据进行数据持久化 2.爬虫调度器 爬虫节点主要是包括两个功能,下载html

上海二手房8月排名:链家、悟空找房、中原、太平洋、我爱我家、易居、房天下、iwjw、房多多、房好多、q房网、、、

链家称王 房多多领跑电商平台 近日,云房数据公布了8月上海房产中介成交数据,从排行榜来看,前五名分别为,总计占上海二手房市场份额达41%. 具体来看,老牌中介方面,链家德佑8月成交9864套遥遥领先,占据上海市场五分之一份额:互联网电商平台方面,房多多本月共成交1406套二手房,一举超越房天下,成为电商中介平台的领头羊.此外,志远本月3057套销售,升至第二名,成为本月最大黑马. TOP10企业占上海二手房市场份额过半 据云房数据统计,2016年8月上海二手房住宅共成交52380套.根据交易方式

python爬虫:爬取链家深圳全部二手房的详细信息

1.问题描述: 爬取链家深圳全部二手房的详细信息,并将爬取的数据存储到CSV文件中 2.思路分析: (1)目标网址:https://sz.lianjia.com/ershoufang/ (2)代码结构: class LianjiaSpider(object): def __init__(self): def getMaxPage(self, url): # 获取maxPage def parsePage(self, url): # 解析每个page,获取每个huose的Link def pars

43.scrapy爬取链家网站二手房信息-1

首先分析:目的:采集链家网站二手房数据1.先分析一下二手房主界面信息,显示情况如下: url = https://gz.lianjia.com/ershoufang/pg1/显示总数据量为27589套,但是页面只给返回100页的数据,每页30条数据,也就是只给返回3000条数据. 2.再看一下筛选条件的情况: 100万以下(775):https://gz.lianjia.com/ershoufang/pg1p1/(p1是筛选条件参数,pg1是页面参数) 页面返回26页信息100万-120万(47