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"; # X家-浦东-青浦地区, 链接自己去找吧(#^.^#)
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 ,简单看一下数据长啥样的~

总结: 好好上班,没事看什么房价~
Python获取房价信息和导出EXCEL的更多相关文章
- python 获取对象信息
当我们拿到一个对象的引用时,如何知道这个对象是什么类型.有哪些方法呢? 使用type() 首先,我们来判断对象类型,使用type()函数: 基本类型都可以用type()判断: >>> ...
- Python 获取车票信息
提示:该代码仅供学习使用,切勿滥用!!! 先来一个git地址:https://gitee.com/wang_li/li_wang 效果图: 逻辑: 1.获取Json文件的内容 2.根据信息生成URL ...
- 用python获取服务器硬件信息[转]
#!/usr/bin/env python # -*- coding: utf-8 -*- import rlcompleter, readline readline.parse_and_bind(' ...
- 用python获取ip信息
1.138网站 http://user.ip138.com/ip/首次注册后赠送1000次请求,API接口请求格式如下,必须要有token值 import httplib2 from urllib.p ...
- python获取对象信息
获取对象信息 拿到一个变量,除了用 isinstance() 判断它是否是某种类型的实例外,还有没有别的方法获取到更多的信息呢? 例如,已有定义: class Person(object): def ...
- python获取机器信息脚本(网上寻找的)
获取机器信息(待测试) # -*- coding: UTF-8 -*- import psutil import json import os import socket import struct ...
- python获取的信息列表微信公共平台和用户头像
转载注明原文地址:http://blog.csdn.net/btyh17mxy/article/details/25207889 只写模拟登陆的方式获取微信从信息和头像库列表公共平台, - 相关后,功 ...
- 关于Python 获取windows信息收集
收集一些Python操作windows的代码 (不管是自带的or第三方库)均来自网上 1.shutdown 操作 定时关机.重启.注销 #!/usr/bin/python #-*-coding:utf ...
- Python - 获取帮助信息
1- Python Manuals 自带CHM格式的Python Manuals存放在\Python<x.x>\Doc\目录下.可以在IDLE界面下按F1键或点击help选项下Python ...
随机推荐
- MySql为某个表增加rownumber
在mySql中,假设表名为tblA,则 select @x:=@x+1 as rownumber, a.* from (select @x:=0) b, tblA a 此语句执行后,则每行数据之前都会 ...
- Goaccess的简单使用
goaccess了,它是一个日志分析工具,并不只是为nginx使用的,你也可以用它来分析apache,具有解析速度快,使用简单,能生成json,html,csv等特点. 1.goaccess的基本安装 ...
- Faster-RCNN论文精读
State-of-the-art object detection networks depend on region proposal algorithms to hypothesize objec ...
- HDU 4866 Shooting 题解:主席树
这题的主要的坑点就是他给你的射击目标有重合的部分,如果你向这些重合的部分射击的话要考虑两种情况: 射击目标数量 ≥ 重合数量 : 全加上 射击目标数量 ≤ 重合数量 : 只加距离*射击目标数量 然而这 ...
- cd 命令行进入目标文件夹
当我在默认路径中使用cd命令时,如果我要进入D:\mytext 文件夹,那么直接使用cd D:\mytext 是不行的 正确的使用是先使用d:进入D盘,然后再进入mytext文件夹
- docker IPv4 forwarding is disabled. 解决方法
问题 最近在 docker 部署 django 项目打包镜像时遇到 [root@localhost ~]# docker build -t test1 . ...省略... WARNING: IPv4 ...
- Linux源码与编译出的目标文件汇编代码的一致性问题
start_kernel是内核启动时比较重要的一个函数,然而我发现一个问题,我编译出来的目标文件中的汇编代码与C源码并不完全对应,这是怎么一回事呢? asmlinkage void __init st ...
- UVA 11178 Morley's Theorem (坐标旋转)
题目链接:UVA 11178 Description Input Output Sample Input Sample Output Solution 题意 \(Morley's\ theorem\) ...
- 几何问题 poj 1408
参考博客: 用向量积求线段焦点证明: 首先,我们设 (AD向量 × AC向量) 为 multi(ADC) : 那么 S三角形ADC = multi(ADC)/2 . 由三角形DPD1 与 三角形CPC ...
- git 和github简介
关于github不清楚的可以百度, 在这里,可以创建一个新的仓库 点击Create repository后会出现下面这些信息,其中第一块是仓库的url链接 第二块是你在本地目录中创建一个READEME ...