首先我们需要将链家二手房的数据抓取下来,用我们上课学的内容,很容易实现(bs4,re,urllib,搞定!):

import re
import csv
from bs4 import BeautifulSoup
from urllib import request

# 成功打开页面时返回页面对象,否则打印错误信息,退出程序
def get_bsobj(url):
## 获取 html 页面
    headers = {"Accept-Language":"zh-CN,zh;q=0.9",
               "User-Agent":"Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36"}

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

## 获取 html 页面
    html = request.urlopen(req).read().decode()
    bsobj = BeautifulSoup(html, "html5lib")
    if bsobj:
        return bsobj
    else:
        print("页面错误")
        return None

# 将页面中每一条房屋信息保存为一个字典,将所有的字典保存在列表中,返回列表
def get_house_info_list(url):
    house_info_list = []
    bsobj = get_bsobj(url)
    if not bsobj:
        return None

house_list = bsobj.find_all("li", {"class":"clear"})
    print(len(house_list))
    for house in house_list:
        try:
            # 标题
            title = house.find("div", {"class": "title"}).get_text()
            #print(title)
    
            # 获取信息数据(例:加怡名城 | 2室1厅 | 62.48平米 | 西 | 精装),通过“|”符号分割字符串
            info = house.find("div", {"class": "houseInfo"}).get_text().split("/")
            #print(info)
            
            # 小区(例:加怡名城),strip()去除字符串两边的空格,encode,将字符串编码成 utf-8 格式
            block = info[0].strip()
            #print(block)
    
            # 房型(例:2室一厅)
            house_type = info[1].strip()
            #print(house_type)
    
            # 面积大小,保留整数(例:62.48平米,保留整数后为 62)
            size_info = info[2].strip()
            size = re.findall(r"\d+", size_info)[0]
            #print(size)
    
            # 价格,保留整数(例:120.3万,保留整数后为 120)
            price_info = house.find("div", {"class": "totalPrice"}).span.get_text()
            price = re.findall(r"\d+", price_info)[0]
            #print(price)
            
            # 添加到列表中
            house_info_list.append({
                "title": title,
                "price": int(price),
                "size": int(size),
                "block": block,
                "house_type": house_type
            })
            
        except IndexError:
            pass

#print(house_info_list)
    return house_info_list

# 读取前三个页面的房屋信息,将信息保存到 house.csv 文件中
def house(url):
    house_info_list = []

# range(10),即前10个子页面  #这里只抓取前10个页面
    for i in range(10):
        new_url = url + 'pg' + str(i+1)
        house_info_list.extend(get_house_info_list(new_url))
        print(new_url)

if house_info_list:
        # 将数据保存到 house.csv 文件中
        with open("./house.csv", "w+") as f:
            # writer 对象,修改默认分隔符为 "|"
            writer = csv.writer(f, delimiter="|")
            for house_info in house_info_list:
                title = house_info.get("title")
                price = house_info.get("price")
                size = house_info.get("size")
                block = house_info.get("block")
                house_type = house_info.get("house_type")
                # 写入一行

try:
                     writer.writerow([title, int(price), int(size), block, house_type])
                     print(block, price, size)

except:

continue

house("https://bj.lianjia.com/ershoufang/")

# 简单数据分析案例,太简单了,直接上代码:这里统计了房屋的面积,价格的平均值,标准差,并用直方图来显示结果

# -*- coding: utf-8 -*-
"""
Created on Sun Jun 10 13:07:02 2018

@author: Jun
"""

import numpy
import matplotlib.pyplot as plt

# 读取 house.csv 文件中价格和面积列
price, size = numpy.loadtxt('house.csv', delimiter='|', usecols=(1, 2), unpack=True)

# 求价格和面积的平均值
price_mean = numpy.mean(price)
size_mean = numpy.mean(size)
print("平均价格为:(万元)", price_mean)
print("平均面积为:(平方米)", size_mean)

# 求价格和面积的方差
#price_var = numpy.var(price)
price_var = numpy.std(price)
#size_var = numpy.var(size)
size_var = numpy.std(size)
print("价格的标准差为:(万元)", price_var)
print("面积的标准差为:", size_var)

price, size = numpy.loadtxt('house.csv', delimiter='|', usecols=(1, 2), unpack=True)
plt.figure()
plt.subplot(211)
plt.title("/10000RMB")
plt.hist(price, bins=20)

plt.subplot(212)
plt.xlabel("/m**2")

plt.hist(size, bins=20)

# 运行结果截图

北京链家二手房数据分析相关推荐

  1. 爬取北京链家二手房数据

    利用python爬取了北京链家主页的二手房数据,爬取时间为2020年1月8日.由于链家只显示了100页.每页30条,因此只能爬取3000条数据. 后续将爬取各区的小区名,对每个小区的在售二手房数据进行 ...

  2. 武汉链家二手房数据分析

    爬取链家二手房武汉地区的成交数据,共23292条记录,利用Excel.MySQL.Power BI等工具对影响武汉二手房交易价格的因素进行了分析 分析思路 分析目的 武汉哪个区的二手房交易最多? 哪种 ...

  3. 数据抓取 | 数据分享 - 北京链家二手房成交数据抓取,保存格式为excel

    该项目应客户需求,抓取 东城西城朝阳海淀二手房成交 数据 抓取字段为:房源id,房型,交易日期,位置,总价,朝向,装修情况,建筑年代,所在楼层,房屋年限,建筑面积,套内面积,电梯情况 -- 抓取流程: ...

  4. 爬取北京链家二手房(requests和selenium)

    从网页源码中可以看出这是静态网页,可以直接从源代码里拿数据,先用requests,在用BeautifulSoup解析,最后通过查找获取数据 import requests from bs4 impor ...

  5. python分析链家二手房信息----数据分析实战(一)

    链家二手房信息 # 导入需要的库:科学计算包numpy, pandas 可视化包matplotlib, seaborn 机器学习包 sklearn import numpy as np import ...

  6. Python 爬取链家二手房,我在北京买房的经历

    本节所讲内容: 链家网站前期分析 利用requests爬取数据 爬取数据存储MongoDB(代码请看最后) 链家网站前期分析 今天我们主要对链家二手房数据爬取,看下我们目前的资金能买那一套.链家二手房 ...

  7. 链家全国房价数据分析 : 数据获取

    最近一直在看论文,也有很久没有coding了,感觉对爬虫的技术有些生疏,我觉得即使现在手头没有在做这方面的东西,经常爬点对技术保鲜还是很重要的.所以这次我打算爬链家的房价数据,目的主要是对爬虫和Pyt ...

  8. PyQt5+Python+Excel链家二手房信息爬取、可视化以及数据存取

    成果图: 第一步运行代码searsh.py,效果如下 第二步选择你所需要爬取数据的城市,如湖北-武汉 然后搜索,结果如下 如果你想爬取更多信息,只需要点击下一页即可 第三步,保存数据.可以将所显示的所 ...

  9. 简单的链家租房数据分析

    链家租房数据分析 以北京链家租房数据为例进行以下数据分析 对"户型"."面积"和"价格"以及每平米价格等信息进行简要的统计分析,如每平米价格 ...

最新文章

  1. 转载 iOS js oc相互调用(JavaScriptCore) --iOS调用js
  2. 从模板方法模式到JDBCTemplate
  3. 简单粗暴的“Debug模式”
  4. 【Linux 内核】线程调度示例一 ③ ( 获取线程优先级 | 设置线程调度策略 | 代码示例 )
  5. 小波变换 完美通俗讲解 之 二
  6. 【NLP-语义匹配】详解深度语义匹配模型DSSM
  7. 简单的C++程序题总结
  8. 深度学习(二十)——Ultra Deep Network, 图像超分辨率算法
  9. idea 代码第一次上传git_如何使用IDEA将项目代码首次上传至GitHub,并持续推送?...
  10. go一个简单的爬虫(豆瓣)
  11. 机器学习基本概念-有监督学习和无监督学习
  12. 免费:轻松实现在微信中直接下载APK
  13. iptables匹配statistic
  14. Python UTC
  15. 二维码图片如何快速生成
  16. type c 网卡 外接网卡 禁用后 不见 消失 找不到 的解决办法
  17. java技术路线思维导图_开题报告中的研究方法及技术路线指的啥?
  18. 人人旗下风车网产品经理的创业失败教训总结
  19. android动态扩容数组,ArrayList 扩容 Android Java 真的不一样
  20. 数据团队总监生存指南

热门文章

  1. 前端学习笔记01---HTML5、CSS3、移动端前端基础学习知识点合集
  2. CMA-ES算法解决连续优化问题
  3. Java创建对象方式初谈
  4. 如何全面的理解APS自动排产系统?
  5. 项目经理职业生涯的五道坎
  6. 求一元二次方程根(含虚根)
  7. opencv 全志_Banana Pi 开发板-【BPI-M2 Berry试用】论opencv3.3.0编译的那些坑(非成功版)-电路城论坛 - 电子工程师学习交流园地...
  8. LibVLC —— 本地音视频例子、Qt播放例子
  9. 路由配置url跳转传参_如何配置路由器以进行网络范围的URL记录
  10. 2017网易笔试矩阵快速幂