Python采集二手房源数据信息并做可视化展示

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

前言

嗨喽~大家好呀,这里是魔王呐 ❤ ~!

Python采集二手房源数据信息并做可视化展示

环境使用:

  • Python 3.8

  • jupyter --> pip install jupyter notebook

  • pycharm 也可以

模块使用:

  • requests >>> pip install requests 数据请求模块

  • parsel >>> pip install parsel 数据解析模块

  • csv 内置模块

第三方模块安装:

  1. win + R 输入 cmd 点击确定, 输入安装命令 pip install 模块名 (pip install requests) 回车

  2. 在pycharm中点击Terminal(终端) 输入安装命令

如果出现爆红, 可能是因为 网络连接超时, 可切换国内镜像源,命令如下:

pip install -i https://pypi.doubanio.com/simple/ requests

python资料、源码、教程\福利皆: 点击此处跳转文末名片获取

python技术实现: <基本流程步骤>

  1. 发送请求, 模拟浏览器对于url地址发送请求

    请求链接地址: https://cs.****.com/ershoufang/

  2. 获取数据, 获取响应数据

    获取数据: 网页源代码 <整个网页数据内容>

  3. 解析数据, 提取我们需要数据

    提取数据: 房源基本信息

  4. 保存数据, 把数据保存本地文件

    保存数据: csv表格文件当中

  5. 多页数据采集

代码展示

获取数据:

# 导入csv模块
import csv

# 创建文件
f = open('data.csv', mode='w', encoding='utf-8', newline='')
# 添加字段名
csv_writer = csv.DictWriter(f, fieldnames=[
        '标题',
        '小区',
        '区域',
        '总价',
        '单价',
        '户型',
        '面积',
        '朝向',
        '装修',
        '楼层',
        '年份',
        '建筑结构',
        '详情页'
])
# 写表头
csv_writer.writeheader()
# 导入数据解析模块 第三方模块, 需要安装
import parsel
# 导入数据请求模块 第三方模块 需要安装 pip install requests
import requests
for page in range(1, 101):
    # 请求链接
    url = f'https://cs.lianjia.com/ershoufang/pg{page}/'
    # 伪装浏览器 --> headers 请求头
    headers = {
        # User-Agent 用户代理 表示浏览器基本身份信息
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36'
    }
    # 发送请求
    response = requests.get(url, headers=headers)
    html_data = response.text # <Response [200]> 响应对象 表示请求成功
    # 把获取下来 html字符串数据内容 <html_data>, 转成可解析对象
    selector = parsel.Selector(html_data)
    """
    selector  <Selector xpath=None data='<html class=""><head><meta http-equiv...'> 选择器对象
        selector.css() 根据标签属性提取数据内容
        selector.xpath()
    """
    # 提取所有li标签里面房源信息 --> 返回列表, 列表里面元素是选择器对象
    lis = selector.css('.sellListContent li .info')
    # for循环遍历, 提取出来, 然后也可以使用css语法或者xpath语法 提取具体数据内容
    for li in lis:
        """
        get() 获取第一个标签数据内容 <返回字符串>
        getall() 获取所有标签数据内容 <返回列表>
        strip() 去除字符串左右两端空格
        replace('元/平', '') 字符串替换, 把字符串当中 元/平 替换成 '' --> 相当于删除
        split(' | ') 字符串分割犯法, 把字符串以  |  作为切割, 分割成列表

        """
        title = li.css('.title a::text').get() # 标题
        info = li.css('.positionInfo a::text').getall()
        area = info[0].strip() # 列表第一个元素 小区
        area_1 = info[1] # 区域
        totalPrice = li.css('.totalPrice span::text').get() # 总价
        unitPrice = li.css('.unitPrice span::text').get().replace('元/平', '')  # 单价
        houseInfo = li.css('.houseInfo::text').get().split(' | ')
        """
        有年份, 列表元素就是7个, 没有年份列表元素6个
        """
        house_type = houseInfo[0] # 户型
        house_area = houseInfo[1] # 面积
        face = houseInfo[2] # 朝向
        house = houseInfo[3] # 装修
        fool = houseInfo[4] # 楼层

        if len(houseInfo) == 7:
            date = houseInfo[5] # 年份
            house_1 = houseInfo[6] # 建筑结构
        elif len(houseInfo) == 6:
            date = '未知'
            house_1 = houseInfo[-1] # 建筑结构
        href = li.css('.title a::attr(href)').get() # 详情页
        # 保存字典里面
        dit = {
            '标题': title,
            '小区': area,
            '区域': area_1,
            '总价': totalPrice,
            '单价': unitPrice,
            '户型': house_type,
            '面积': house_area,
            '朝向': face,
            '装修': house,
            '楼层': fool,
            '年份': date,
            '建筑结构': house_1,
            '详情页': href,

        }
#         csv_writer.writerow(dit)
#         print(dit)
    #     print(title, area, area_1, totalPrice, unitPrice, house_type, house_area, face, house, fool, date, house_1, sep='|')

数据可视化:

import pandas as pd
# 读取数据
df = pd.read_csv('data.csv')
df.head()

Python采集二手房源数据信息并做可视化展示

house_type_num = df['户型'].value_counts().to_list()
house_type = df['户型'].value_counts().index.to_list()
from pyecharts import options as opts
from pyecharts.charts import Pie
from pyecharts.globals import CurrentConfig, NotebookType
CurrentConfig.NOTEBOOK_TYPE = NotebookType.JUPYTER_LAB
c = (
    Pie()
    .add("", [list(z) for z in zip(house_type, house_type_num)])
    .set_global_opts(title_opts=opts.TitleOpts(title="二手房源户型"))
    .set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}"))
)
c.load_javascript()
c.render_notebook()
house_num = df['装修'].value_counts().to_list()
house_type_1 = df['装修'].value_counts().index.to_list()
from pyecharts import options as opts
from pyecharts.charts import Pie
from pyecharts.globals import CurrentConfig, NotebookType
CurrentConfig.NOTEBOOK_TYPE = NotebookType.JUPYTER_LAB
c = (
    Pie()
    .add("", [list(z) for z in zip(house_type_1, house_num)])
    .set_global_opts(title_opts=opts.TitleOpts(title="二手房源装修占比分布"))
    .set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}"))
)
c.render_notebook()
date_num = df['年份'].value_counts().to_list()
date_type = df['年份'].value_counts().index.to_list()
from pyecharts import options as opts
from pyecharts.charts import Pie
from pyecharts.globals import CurrentConfig, NotebookType
CurrentConfig.NOTEBOOK_TYPE = NotebookType.JUPYTER_LAB
c = (
    Pie()
    .add("", [list(z) for z in zip(date_type, date_num)])
    .set_global_opts(title_opts=opts.TitleOpts(title="二手房源年份占比分布"))
    .set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}"))
)
c.render_notebook()
df.head()

尾语

感谢你观看我的文章呐~本次航班到这里就结束啦 🛬

希望本篇文章有对你带来帮助 🎉,有学习到一点知识~

躲起来的星星🍥也在努力发光,你也要努力加油(让我们一起努力叭)。

Python采集二手房源数据信息并做可视化展示

最后,宣传一下呀~👇👇👇更多源码、资料、素材、解答、交流皆点击下方名片获取呀👇👇文章来源地址https://www.toymoban.com/news/detail-497808.html

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

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

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

相关文章

  • Python杭州二手房源爬虫数据可视化分析大屏全屏系统

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

    2024年04月15日
    浏览(47)
  • Python贵州贵阳二手房源爬虫数据可视化分析大屏全屏系统

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

    2024年04月09日
    浏览(45)
  • 用Python获取链家二手房房源数据,做可视化图分析数据

    数据采集的步骤是固定: 发送请求, 模拟浏览器对于url地址发送请求 获取数据, 获取网页数据内容 -- 请求那个链接地址, 返回服务器响应数据 解析数据, 提取我们需要的数据内容 保存数据, 保存本地文件 所需模块 win + R 输入cmd 输入安装命令 pip install 模块名 (如果你觉得安装速

    2024年02月14日
    浏览(55)
  • Python杭州二手房源爬虫数据可视化分析大屏全屏系统答辩PPT

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

    2024年02月04日
    浏览(46)
  • Python安徽合肥二手房源爬虫数据可视化分析大屏全屏系统 开题报告

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

    2024年02月05日
    浏览(41)
  • Python吉林长春二手房源爬虫数据可视化分析大屏全屏系统 开题报告

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

    2024年02月05日
    浏览(48)
  • Python四川成都二手房源爬虫数据可视化分析大屏全屏系统 开题报告

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

    2024年02月05日
    浏览(44)
  • Python天津二手房源爬虫数据可视化分析大屏全屏系统设计与实现 开题报告

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

    2024年02月05日
    浏览(42)
  • Python上海二手房源爬虫数据可视化分析大屏全屏系统设计与实现 开题报告

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

    2024年02月05日
    浏览(42)
  • Python北京二手房源爬虫数据可视化分析大屏全屏系统设计与实现 开题报告

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

    2024年02月04日
    浏览(46)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包