用Python获取链家二手房房源数据,做可视化图分析数据

这篇具有很好参考价值的文章主要介绍了用Python获取链家二手房房源数据,做可视化图分析数据。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

数据采集的步骤是固定:

  1. 发送请求, 模拟浏览器对于url地址发送请求
  2. 获取数据, 获取网页数据内容 --> 请求那个链接地址, 返回服务器响应数据
  3. 解析数据, 提取我们需要的数据内容
  4. 保存数据, 保存本地文件

所需模块

win + R 输入cmd 输入安装命令 pip install 模块名 (如果你觉得安装速度比较慢, 你可以切换国内镜像源)

# 数据请求模块 第三方模块 需要安装 pip install requests
import requests
# 数据解析模块 第三方模块 需要安装 pip install parsel
import parsel
# 导入csv模块 内置模块 不需要安装
import csv  # 固定模板
# 导入pandas模块
import pandas as pd

二手房源数据获取

请求数据

# 模拟浏览器
headers = {
    # 用户代理 表示浏览器基本身份信息
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36'
}
# 请求链接
url = 'https://cs.lianjia.com/ershoufang/'
# 发送请求
response = requests.get(url=url, headers=headers)
# 输出内容 <Response [200]> 响应对象 表示请求成功
print(response)

用Python获取链家二手房房源数据,做可视化图分析数据,Python案例教学,python,开发语言,信息可视化

解析数据

我们这次选用css选择器: 根据标签属性提取数据内容

  • 获取所有房源所在li标签
selector = parsel.Selector(response.text)  # 选择器对象
# 获取所有房源所在li标签
lis = selector.css('.sellListContent li .info')
  • for循环遍历
for li in lis:
    title = li.css('.title a::text').get()  # 标题
    area_info = li.css('.positionInfo a::text').getall()  # 区域信息
    area_1 = area_info[0]  # 小区
    area_2 = area_info[1]  # 区域
    totalPrice = li.css('.totalPrice span::text').get()  # 总价
    unitPrice = li.css('.unitPrice span::text').get().replace('元/平', '')  # 单价
    houseInfo = li.css('.houseInfo::text').get().split(' | ')  # 房源信息
    HouseType = houseInfo[0]  # 户型
    HouseArea = houseInfo[1].replace('平米', '')  # 面积
    HouseFace = houseInfo[2]  # 朝向
    HouseInfo_1 = houseInfo[3]  # 装修
    fool = houseInfo[4]  # 楼层
    HouseInfo_2 = houseInfo[-1]  # 建筑结构
    href = li.css('.title a::attr(href)').get()  # 详情页
    dit = {
        '标题': title,
        '小区': area_1,
        '区域': area_2,
        '总价': totalPrice,
        '单价': unitPrice,
        '户型': HouseType,
        '面积': HouseArea,
        '朝向': HouseFace,
        '装修': HouseInfo_1,
        '楼层': fool,
        '年份': date,
        '建筑结构': HouseInfo_2,
        '详情页': href,
    }
    print(dit)

用Python获取链家二手房房源数据,做可视化图分析数据,Python案例教学,python,开发语言,信息可视化

保存数据

f = open('二手房.csv', mode='w', encoding='utf-8', newline='')
csv_writer = csv.DictWriter(f, fieldnames=[
    '标题',
    '小区',
    '区域',
    '总价',
    '单价',
    '户型',
    '面积',
    '朝向',
    '装修',
    '楼层',
    '年份',
    '建筑结构',
    '详情页',
])
csv_writer.writeheader()

用Python获取链家二手房房源数据,做可视化图分析数据,Python案例教学,python,开发语言,信息可视化

接下来就是数据可视化

二手房源户型分布

from pyecharts import options as opts
from pyecharts.charts import Pie
from pyecharts.faker import Faker

c = (
    Pie()
    .add(
        "",
        [
            list(z)
            for z in zip(house_type, house_num)
        ],
        center=["40%", "50%"],
    )
    .set_global_opts(
        title_opts=opts.TitleOpts(title="二手房源户型分布"),
        legend_opts=opts.LegendOpts(type_="scroll", pos_left="80%", orient="vertical"),
    )
    .set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}"))
#     .render("pie_scroll_legend.html")
)
c.load_javascript()

用Python获取链家二手房房源数据,做可视化图分析数据,Python案例教学,python,开发语言,信息可视化

二手房源朝向分布

face_type = df['朝向'].value_counts().index.to_list()
face_num = df['朝向'].value_counts().to_list()
c = (
    Pie()
    .add(
        "",
        [
            list(z)
            for z in zip(face_type, face_num)
        ],
        center=["40%", "50%"],
    )
    .set_global_opts(
        title_opts=opts.TitleOpts(title="二手房源朝向分布"),
        legend_opts=opts.LegendOpts(type_="scroll", pos_left="80%", orient="vertical"),
    )
    .set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}"))
#     .render("pie_scroll_legend.html")
)
c.render_notebook()

用Python获取链家二手房房源数据,做可视化图分析数据,Python案例教学,python,开发语言,信息可视化

二手房源装修分布

face_type = df['装修'].value_counts().index.to_list()
face_num = df['装修'].value_counts().to_list()
c = (
    Pie()
    .add(
        "",
        [
            list(z)
            for z in zip(face_type, face_num)
        ],
        center=["40%", "50%"],
    )
    .set_global_opts(
        title_opts=opts.TitleOpts(title="二手房源装修分布"),
        legend_opts=opts.LegendOpts(type_="scroll", pos_left="80%", orient="vertical"),
    )
    .set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}"))
#     .render("pie_scroll_legend.html")
)
c.render_notebook()

用Python获取链家二手房房源数据,做可视化图分析数据,Python案例教学,python,开发语言,信息可视化

二手房源年份分布

face_type = df['年份'].value_counts().index.to_list()
face_num = df['年份'].value_counts().to_list()
c = (
    Pie()
    .add(
        "",
        [
            list(z)
            for z in zip(face_type, face_num)
        ],
        center=["40%", "50%"],
    )
    .set_global_opts(
        title_opts=opts.TitleOpts(title="二手房源年份分布"),
        legend_opts=opts.LegendOpts(type_="scroll", pos_left="80%", orient="vertical"),
    )
    .set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}"))
#     .render("pie_scroll_legend.html")
)
c.render_notebook()

用Python获取链家二手房房源数据,做可视化图分析数据,Python案例教学,python,开发语言,信息可视化

二手房源建筑结构分布

face_type = df['建筑结构'].value_counts().index.to_list()
face_num = df['建筑结构'].value_counts().to_list()
c = (
    Pie()
    .add(
        "",
        [
            list(z)
            for z in zip(face_type, face_num)
        ],
        center=["40%", "50%"],
    )
    .set_global_opts(
        title_opts=opts.TitleOpts(title="二手房源建筑结构分布"),
        legend_opts=opts.LegendOpts(type_="scroll", pos_left="80%", orient="vertical"),
    )
    .set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}"))
#     .render("pie_scroll_legend.html")
)
c.render_notebook()

用Python获取链家二手房房源数据,做可视化图分析数据,Python案例教学,python,开发语言,信息可视化

各大区域房价平均价

avg_salary = df.groupby('区域')['总价'].mean()
CityType = avg_salary.index.tolist()
CityNum = [int(a) for a in avg_salary.values.tolist()]
from pyecharts.charts import Bar
# 创建柱状图实例
c = (
    Bar()
    .add_xaxis(CityType)
    .add_yaxis("", CityNum)
    .set_global_opts(
        title_opts=opts.TitleOpts(title="各大区域房价平均价"),
        visualmap_opts=opts.VisualMapOpts(
            dimension=1,
            pos_right="5%",
            max_=30,
            is_inverse=True,
        ),
        xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=45))  # 设置X轴标签旋转角度为45度
    )
    .set_series_opts(
        label_opts=opts.LabelOpts(is_show=False),
        markline_opts=opts.MarkLineOpts(
            data=[
                opts.MarkLineItem(type_="min", name="最小值"),
                opts.MarkLineItem(type_="max", name="最大值"),
                opts.MarkLineItem(type_="average", name="平均值"),
            ]
        ),
    )
)

c.render_notebook()

用Python获取链家二手房房源数据,做可视化图分析数据,Python案例教学,python,开发语言,信息可视化

各大区域房价单价平均价格

import pandas as pd
from pyecharts.charts import Bar
import pyecharts.options as opts

# 清理数据并将'单价'列转换为整数类型
df['单价'] = df['单价'].str.replace(',', '').astype(int)

# 计算平均价
avg_salary = df.groupby('区域')['单价'].mean()

# 获取城市类型和城市平均价格
CityType = avg_salary.index.tolist()
CityNum = [int(a) for a in avg_salary.values.tolist()]

# 创建柱状图实例
c = (
    Bar()
    .add_xaxis(CityType)
    .add_yaxis("", CityNum)
    .set_global_opts(
        title_opts=opts.TitleOpts(title="各大区域房价单价平均价格"),
        visualmap_opts=opts.VisualMapOpts(
            dimension=1,
            pos_right="5%",
            max_=30,
            is_inverse=True,
        ),
        xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=45))  # 设置X轴标签旋转角度为45度
    )
    .set_series_opts(
        label_opts=opts.LabelOpts(is_show=False),
        markline_opts=opts.MarkLineOpts(
            data=[
                opts.MarkLineItem(type_="min", name="最小值"),
                opts.MarkLineItem(type_="max", name="最大值"),
                opts.MarkLineItem(type_="average", name="平均值"),
            ]
        ),
    )
)

# 在Notebook中显示柱状图
c.render_notebook()

用Python获取链家二手房房源数据,做可视化图分析数据,Python案例教学,python,开发语言,信息可视化

适合练手的25个Python案例源码分享,总有一个你想要的文章来源地址https://www.toymoban.com/news/detail-634287.html

👇问题解答 · 源码获取 · 技术交流 · 抱团学习请联系👇

到了这里,关于用Python获取链家二手房房源数据,做可视化图分析数据的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • python上海二手房数据可视化大屏全屏系统设计与实现(django框架)

     博主介绍 :黄菊华老师《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育和辅导。 所有项目都配有从入门到精通的基础知识视频课程,免费 项目配有对应开发文档、开题报告、任务书、

    2024年02月05日
    浏览(42)
  • python重庆二手房数据可视化大屏全屏系统设计与实现(django框架)

     博主介绍 :黄菊华老师《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育和辅导。 所有项目都配有从入门到精通的基础知识视频课程,免费 项目配有对应开发文档、开题报告、任务书、

    2024年02月05日
    浏览(45)
  • python甘肃兰州二手房数据可视化大屏全屏系统设计与实现(django框架)

     博主介绍 :黄菊华老师《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育和辅导。 所有项目都配有从入门到精通的基础知识视频课程,免费 项目配有对应开发文档、开题报告、任务书、

    2024年02月04日
    浏览(49)
  • python福建福州二手房数据可视化大屏全屏系统设计与实现(django框架)

     博主介绍 :黄菊华老师《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育和辅导。 所有项目都配有从入门到精通的基础知识视频课程,免费 项目配有对应开发文档、开题报告、任务书、

    2024年02月03日
    浏览(41)
  • python河南郑州二手房数据可视化大屏全屏系统设计与实现(django框架)

     博主介绍 :黄菊华老师《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育和辅导。 所有项目都配有从入门到精通的基础知识视频课程,免费 项目配有对应开发文档、开题报告、任务书、

    2024年02月04日
    浏览(36)
  • python陕西西安二手房数据可视化大屏全屏系统设计与实现(django框架)

     博主介绍 :黄菊华老师《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育和辅导。 所有项目都配有从入门到精通的基础知识视频课程,免费 项目配有对应开发文档、开题报告、任务书、

    2024年02月03日
    浏览(46)
  • python江苏南京二手房数据可视化大屏全屏系统设计与实现(django框架)

     博主介绍 :黄菊华老师《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育和辅导。 所有项目都配有从入门到精通的基础知识视频课程,免费 项目配有对应开发文档、开题报告、任务书、

    2024年02月04日
    浏览(48)
  • python湖南长沙二手房数据可视化大屏全屏系统设计与实现(django框架)

     博主介绍 :黄菊华老师《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育和辅导。 所有项目都配有从入门到精通的基础知识视频课程,免费 项目配有对应开发文档、开题报告、任务书、

    2024年02月04日
    浏览(39)
  • python山西太原二手房数据可视化大屏全屏系统设计与实现(django框架)

     博主介绍 :黄菊华老师《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育和辅导。 所有项目都配有从入门到精通的基础知识视频课程,免费 项目配有对应开发文档、开题报告、任务书、

    2024年02月04日
    浏览(41)
  • 计算机毕设 大数据二手房数据爬取与分析可视化 -python 数据分析 可视化

    # 1 前言 🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。 为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项

    2024年02月04日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包