房价与生活息息相关,那么各地区房价情况和差别咋样呢?  可以打开网站或手机APP去查询一下,不过查看到的数据有限,很不过瘾~

作为一个合格的程序员,要懂得用代码解决问题!

第一步:打开一个房产交易平台,比如某家,以上海为例,随便找两个区,青浦区,浦东区 , F12 按起来,找一找有没有熟悉的接口,比如返回data里面包含list的

Python获取房价信息和导出EXCEL-LMLPHP

(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-LMLPHP

 总结: 好好上班,没事看什么房价~

05-11 22:23