Python爬取天津房价并进行可视化

Python爬取天津房价并进行可视化

    • 步骤
    • 代码

步骤

1.爬取网页信息
2.解析网页信息,获取需要的数据,存入CSV文件中
3.读取CSV文件,对数据进行处理,包括剔除异常值,空值等,进行可视化

代码

import requests
from bs4 import BeautifulSoup
import csv
import pandas as pd
#获取网页信息
def getHTMLText(url):try:r = requests.get(url,timeout = 10)r.raise_for_status()r.encoding = r.apparent_encoding #print出来为utf-8编码return r.text #返回文本信息except:print('爬取网页异常!')
#解析网页信息,筛选房价,地区,小区等信息,存入列表
def HTML2List(info_list,html):try:name_list = []area_list = []price_list = []soup = BeautifulSoup(html,'html.parser')for name in soup.findAll('div',attrs = {'class':'resblock-name'}):n = name.find_all('a')[0].stringname_list.append(n)for area in soup.findAll('div',attrs = {'class':'resblock-location'}):a = area.find('span').stringarea_list.append(a)for price in soup.findAll('div',attrs = {'class':'main-price'}):p = price.find('span').stringprice_list.append(p)for i in range(len(name_list)):info_list.append([name_list[i],area_list[i],price_list[i]])return info_listexcept:print('error')
#将列表信息存入CSV文件中
def List2CSV(list):file_name = 'C:\\Users\\yangyukuan\\Desktop\\yyk.csv'headers = ['小区','地区','价格']data = pd.DataFrame(columns = headers,data = list) #创建列名为headers列表,内容为list列表的二维DataFrame结构数据datadata.to_csv(file_name)
def main():start_url = 'https://tj.fang.lianjia.com/loupan/pg'#爬取 页数page = 53 info_list = []for p in range(page):url = start_url + str(p+1)html = getHTMLText(url)list = HTML2List(info_list,html)List2CSV(list)
if __name__ == '__main__':main()

得到的文件内容:

得到了数据,下一步进行预处理和可视化。

import matplotlib.pyplot as pltplt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['font.family']='sans-serif'
#解决负号'-'显示为方块的问题
plt.rcParams['axes.unicode_minus'] = False
#添加文字标签
def add_labels(rects):for rect in rects:height = rect.get_height()plt.text(rect.get_x()+rect.get_width()/2,height,height,ha='center',va='bottom')rect.set_edgecolor('white')
def main():file_name = 'C:\\Users\\yangyukuan\\Desktop\\yyk.csv'data = pd.read_csv(file_name,encoding='utf-8')price_list = []area_list = ['西青','武清','北辰','东丽','津南','河东','河西','和平','宝坻','静海','蓟州','滨海新区']data.dropna() #去除空值data1 = data[~data[u'价格'].isin(['价格待定'])] #爬取的价格中有些为价格待定,所以需要去除这些信息,判断价格待定是否存在价格这一列中,再取反#data1[u'价格']为取出一列,类型为Series,不能与数字进行比较,所以通过pd.to_numeric()转化为数字,取价格大于2000的信息data1 = data1[(pd.to_numeric(data1[u'价格']) > 2000)] #取出每个区域信息,采用round函数保留两位小数d1 = data1[data1[u'地区'] == '西青']p1 = round(pd.to_numeric(d1[u'价格']).sum() / len(d1), 2) #计算价格均值price_list.append(p1) #加入列表d2 = data1[data1[u'地区'] == '武清']p2 = round(pd.to_numeric(d2[u'价格']).sum() / len(d2), 2)price_list.append(p2)d3 = data1[data1[u'地区'] == '北辰']p3 = round(pd.to_numeric(d3[u'价格']).sum() / len(d3), 2)price_list.append(p3)d4 = data1[data1[u'地区'] == '东丽']p4 = round(pd.to_numeric(d4[u'价格']).sum() / len(d4), 2)price_list.append(p4)d5 = data1[data1[u'地区'] == '津南']p5 = round(pd.to_numeric(d5[u'价格']).sum() / len(d5), 2)price_list.append(p5)d6 = data1[data1[u'地区'] == '河东']p6 = round(pd.to_numeric(d6[u'价格']).sum() / len(d6), 2)price_list.append(p6)d7 = data1[data1[u'地区'] == '河西']p7 = round(pd.to_numeric(d7[u'价格']).sum() / len(d7), 2)price_list.append(p7)d8 = data1[data1[u'地区'] == '和平']p8 = round(pd.to_numeric(d8[u'价格']).sum() / len(d8), 2)price_list.append(p8)d9 = data1[data1[u'地区'] == '宝坻']p9 = round(pd.to_numeric(d9[u'价格']).sum() / len(d9), 2)price_list.append(p9)d10 = data1[data1[u'地区'] == '静海']p10 = round(pd.to_numeric(d10[u'价格']).sum() / len(d10), 2)price_list.append(p10)d11 = data1[data1[u'地区'] == '蓟州']p11 = round(pd.to_numeric(d11[u'价格']).sum() / len(d11), 2)price_list.append(p11)d12 = data1[data1[u'地区'] == '滨海新区']p12 = round(pd.to_numeric(d12[u'价格']).sum() / len(d12), 2)price_list.append(p12)bar_width = 0.6index = range(len(area_list))rects = plt.bar(index,price_list,tick_label=area_list,color='g',width=bar_width,align='center')plt.xlabel(u'区域(天津)')plt.ylabel(u'价格(元/平方米)')plt.title(u'天津各区楼盘价格')add_labels(rects)plt.savefig('C:\\Users\\yangyukuan\\Desktop\\yyk.png')plt.show()if __name__ == '__main__':main()

结论:

上图为天津各区域房价均值信息,和平区都已经5.5万了,天津人表示买不起(哭.jpg),这个过程比较完成又相对简单,对于初学者来说也是值得学习的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/22557.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

房价概况:2013年2月26日天津各区县房价一览

2013年2月26日全市新建商品房交易373套、面积37502.8平方米,平均价格每平方米10504元。其中,住宅335套、面积34159.8平方米,平均价格每平方米9844元。二手住宅交易275套、面积22696.8平方米,平均价格每平方米8579元。

Spring实战----Taco Cloud(墨西哥煎玉米卷在线订购系统)

记录一下根据《Spring实战(第五版)》(人民邮电出版社)所学习的过程 目录 项目初始化 开发WEB应用 使用数据库 使用Spring Data JPA进行持久化数据 使用Spring Security保护Spring 自定义用户验证 项目初始化 New一个Project,选择Sprin…

C/C++字符串

一.C风格的字符串 1. char a[6] { h,e,l,l,o,\0 }; printf("%s", a);//hello#include<iostream> #include<string> using namespace std; int main() {char a[6] { h,e,l,l,o,\0 };char b[5] { h,e,l,l,o};//空间至少大一位留出\0位置char c[6] { h,e…

Qt输入窗口部件编程(一) QComboBox和QFontComboBox

文章目录 前言1、 Qt常用的输入窗口控件2、QFontComboBox 和 QComboBox控件编程2.1 控件简介2.1.1 QComboBox组合框2.1.2 QFontComboBox字体组合框 2.2 例程功能设计2.3 例程执行效果2.4 生成项目2.5 代码编辑2.5.1 修改项目文件_qcombobox.pro2.5.2 修改 main.cpp2.5.3 修改 w…

Xmind8 乱码问题解决(查看文件字体并下载安装相应字体)

每台电脑引起Xmind软件出现乱码的原因也不一样&#xff0c;本文仅适用于解决字体缺少或者字体版本不对而引发的乱码问题。每台电脑缺少的字体包也不一样&#xff0c;要通过“工具”-》“提取样式”菜单&#xff0c;具体分析自己的Xmind文件需要什么字体&#xff0c;然后搜索对应…

idea主题 插件 乱码 快捷键

idea样式网站 http://www.easycolor.cc/ http://www.riaway.com/ idea 乱码情况 中文乱码问题分类&#xff1a; 1.编码普通中文乱码 2.properties文件中文乱码 3.console控制台中文乱码 4.搜索框中文乱码 5.svn注释中文乱码 解决方法&#xff1a; 1、编码普通中文乱码 ①s…

基于声学模型共享的零资源韩语识别系统

声学模型共享方法是极低资源小语种语音识别一种解决方案&#xff0c;能够实现不需要任何语音数据的语音识别。本文介绍清华大学语音与音频技术实验室的零资源韩语语音系统&#xff0c;其在不使用任何韩语语音数据的情况下&#xff0c;在Zeroth韩语数据集上的测试CER达到了27.33…

韩语在线翻译图片识别_图片怎么转表格excel

图片转表格excel&#xff0c;快来免费用 ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ 相信大部分小伙伴选择拍图识字 是因为强大的ocr识别功能 图片文字一键提取导出 但是&#xff0c;有多少人知道 拍图识字还可以成为你的私人翻译&#xff01;1 多语言转换 拍图识字首页点击拍照/…

韩译中难吗,如何做好韩语翻译

我们知道&#xff0c;韩语是韩国的官方语言&#xff0c;由于长期和中国文化的接触&#xff0c;历史上曾用汉字标记&#xff0c;并且将汉语融入其词汇&#xff0c;基于这一特点&#xff0c;韩译中难吗&#xff0c;如何做好韩语翻译? 据了解&#xff0c;中韩文化交流的历史可以追…

韩语在线翻译图片识别_3个OCR文字识别工具,最后一个许多人都不知道!

在日常生活和工作中,经常有需要录入一张图片或实物内容的文字信息的时候,对于少量内容,你或许可以轻松完成。可是一旦内容多,而你打字速度又不快的情况下,那可真的是一件非常枯燥又费力的事情。 而一般遇到这种情况,大家就可以利用OCR文字识别工具,只需简单对着物体拍张…

韩语在线翻译图片识别_如何用扫描全能王将图片转成文字?

扫描君有个写材料的朋友&#xff0c;每次需要摘录书或宣传册里的内容&#xff0c;他总是一个字一个字地敲&#xff0c;效率不高&#xff0c;还容易出错&#xff0c;自己也很痛苦&#xff01;&#xff01; 扫描君也有这样的亲身体会&#xff1a; 在微博、朋友圈里看到一些图片或…

韩语翻译拍照怎么弄?分享几款拍照翻译软件

拍照翻译软件是一种基于人工智能技术开发的翻译工具&#xff0c;它可以通过拍照识别文字&#xff0c;然后将文字翻译成大家选择的语言。这种翻译方式比传统的输入文字翻译更加方便快捷&#xff0c;无需手动输入文字&#xff0c;提高了翻译的效率、准确性&#xff0c;也提供更好…

yandex的“Search queries” report(搜索查询报告)

上一篇提到了我们查询访客关键词的入口&#xff0c;需要从“搜索查询”报告中点击进入&#xff0c;那么我们好好的来了解一下其中数据的具体含义吧~ 首先&#xff1a;该报告包含来自投放您的广告的搜索平台的用户查询&#xff0c;包括与您的关键字在语义上匹配的搜索查询。这句…

韩语识别_韩语文字识别_韩语图片识别 - 云+社区 - 腾讯云

广告关闭 腾讯云双11爆品提前享,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高满返5000元! 购买预付费包更加优惠 识别 小时语音不到 元 每月赠送免费额度最大程度降低客户成本 效果好 字准率 处于业界领先水平 与微信王者荣耀的语音转文字使用一套服…

【pdf翻译中文】免费自用日语pdf转中文、韩语pdf转中文(也可以转英文)或者其他小语种法语、德语pdf转中文

不是很精确、有点慢&#xff0c;但是也够用&#xff0c;胜在免费free 效果图&#xff1a; 一些对比&#xff1a; 模型来自于&#xff1a; https://huggingface.co/models 文件目录 调用模型的代码&#xff1a; 运行此段代码&#xff0c;执行翻译 一些简单的设置在这里…

在线翻译_英汉互译,支持繁体,韩语,日语 - 微信小程序在线翻译,单词句子翻译

打开微信&#xff0c;搜索页面 输入&#xff1a;超实用工具箱 找到上图所示的小程序点击打开&#xff0c;在菜单栏中找到【在线翻译】&#xff0c;点开进入翻译页面 有多种语言可以选择&#xff1a;英文&#xff0c;简体中文&#xff0c;香港&#xff0c;台湾&#xff0c;韩语&…

韩语在线翻译图片识别_最强文字识别APP

在我们日常生活和办公中&#xff0c;处理纸质文档上的文字是必不可免的&#xff0c;而当我们需要快速把纸质上的文字转换成可编辑的电子文档时候&#xff0c;如果单靠打字输入的话往往令人有点头疼&#xff0c;特别是面对字数众多的文本。此时此刻&#xff0c;一个识别准确 OCR…

【韩语图片文字识别】如何快速识别韩语图片文字,将文字变成电子档,进行翻译处理教程

场景&#xff1a;在韩语学习&#xff0c;韩语工作中经常遇到一些文字图片&#xff0c;如何将韩语图片文字从图片上扣下来&#xff0c;我们可以直接复制粘贴&#xff0c;提高我们的工作效率 我们会用到一款小工具&#xff1a;咕嘎ocr多语言文字识别系统 软件下载链接&#xff…

网站接入qq客服在线聊天

一. 注册一个网站专用QQ。 二. 到QQ商家设置QQ在线状态&#xff1a;http://wp.qq.com/set.html 免费开通设置会话类型 三、生成代码 四、将代码粘贴到自己的网站上&#xff0c;之后访客就可以点击图标给网站客服QQ留言了。

网站在线沟通工具,网站即时聊天工具-TTKEFU在线客服系统功能介绍

接待多渠道顾客——PC简洁版 TTKEFU客服打通web网站、移动网站、微信、APP、电话、表单、邮件等等&#xff0c;无论顾客来自于哪个渠道&#xff0c;都可以在TTKEFU客服后台统一接待。 接待多渠道顾客——PC工作台版 整合同一顾客在不同渠道不同场景的碎片化行为&#xff0c;将…