Python获取房价信息和导出EXCEL
时间:2019-11-18
本文章向大家介绍Python获取房价信息和导出EXCEL,主要包括Python获取房价信息和导出EXCEL使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
房价与生活息息相关,那么各地区房价情况和差别咋样呢? 可以打开网站或手机APP去查询一下,不过查看到的数据有限,很不过瘾~
作为一个合格的程序员,要懂得用代码解决问题!
第一步:打开一个房产交易平台,比如某家,以上海为例,随便找两个区,青浦区,浦东区 , F12 按起来,找一找有没有熟悉的接口,比如返回data里面包含list的
(ps:emmm....~~~~买不起买不起~~~)
第二步:分析一下上面的URL
把上面的F12找到的URL弄出来https://sh.fang.xxxxxjia.com/loupan/pudong-qingpu/pg2/?_t=2,
这里肯定有参数表示的是第几页!
观察一下,就2个数字,自己网页上面随便点点,发现pg2表示的是page几的意思,一页10个数据~
好了,都分析清楚了! 接下来想个办法,从某家上面发送100个请求试试,这样拿到了1000个数据~(FBI警告:不要轻易爬取人家网站信息)
第三步:打开Python的编辑器 ,Talk is cheap. Show me the code
这里使用 Urllib来发送http请求;xlwt来导出Excel, 另外用到了json;
import json import urllib import xlwt all_info_list = [] # 定义一个列表存储数据 try: for i in range(1, 100): # pageIndex = 2; # 第几页 ,用i代替 restUri = "https://sh.fang.xxxxjia.com/loupan/pudong-qingpu/pg" + str(i) + "/?_t=2"; # 链家-浦东-青浦地区, 链接自己去找吧(#^.^#) PostParam = "" DATA = PostParam.encode('utf8') req = urllib.request.Request(url=restUri, data=DATA, method='GET') req.add_header('Content-type', 'application/x-www-form-urlencoded') r = urllib.request.urlopen(req).read() org_obj = json.loads(r.decode('utf8')) all_info_list.extend(org_obj['data']['list']) # 将返回数据添加到总列表中 print("请求完毕!" + str(i)) book = xlwt.Workbook(encoding='utf-8') sheet = book.add_sheet('ke_qq') keys = ['address', 'address_remark', 'average_price', 'avg_price_start', 'avg_price_start_unit', 'avg_unit_price', 'min_frame_area','max_frame_area','subway_distance', 'bizcircle_name', 'district_name', 'frame_rooms_desc', 'house_type', 'on_time', 'open_date'] # 表头 head = ['地址', '地标', '均价', '起步价', '单位', '单价', '最小面积', '最大面积','距离地铁', '商圈名称', '区名称', '居室类型', '房屋类型', '上线时间', '开盘时间'] for h in range(len(head)): sheet.write(0, h, head[h]) # 写入表头 i = 1 for list_dict in all_info_list: j = 0 for key in keys: sheet.write(i, j, list_dict[key]) j += 1 i += 1 book.save('I:\spiderfile\lou.xls') print("---end----") except Exception as e: print(e)
代码挺简单的,返回的数据格式比较清晰; 至于数据翻译的对不对,自己去把握咯,
这里只选取了一部分的房价数据到Excel中,位置是在I:\spiderfile\lou.xls ,简单看一下数据长啥样的~
总结: 好好上班,没事看什么房价~
原文地址:https://www.cnblogs.com/coloz/p/11882758.html
- 接口测试 | 22 requests基础入门
- 图的存储结构的实现(C/C++实现)
- 树和二叉树的存储结构的实现(C/C++实现)
- Selenium3源码之异常模块篇
- 移位密码原理及算法实现
- 排序算法的实现(C/C++实现)
- [开源] 分享导出博客园文章成本地 Markdown 文件存储的工具
- 单表代替密码原理及算法实现
- 【Android开发学习笔记之一】5大布局方式详解
- Selenium3源码之common下action_chains.py模块分析
- 图的简单应用(C/C++实现)
- 一个很easy的脚本--php获取服务器端的相关信息
- Kubernetes网络解决方案的比较
- OSX 上初步尝试 asp.net 5
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 5分钟Flink - 时间语义和Watermark
- 3. Pandas系列 - DataFrame操作
- 4. Pandas系列 - 基本功能和统计操作
- 面经手册 · 第8篇《LinkedList插入速度比ArrayList快?你确定吗?》
- 无所不能的Embedding 2. FastText词向量&文本分类
- 5. Pandas系列 - 重建索引
- 6. Pandas系列 - 迭代
- Java 虚拟机基础原理:功能,内存管理,类的加载机制,分析字节码执行过程
- Stack有性能问题?推荐用ArrayDeque队列!队列是什么?什么是双端队列、延迟系列、阻塞队列,全是知识盲区!
- 纯CSS实现照片墙效果
- Tungsten Fabric知识库丨构建、安装与公有云部署
- 7. Pandas系列 - 排序和字符串处理
- JVM调优,程序员必须掌握的知识
- 5分钟Flink - 侧输出流(SideOutput)
- 数据库技术:MySQL 基础和 SQL 入门,单表、约束和事务