公租房mysql_使用Python统计深圳市公租房申请人省份年龄统计
1 #-*- coding:utf-8 -*-
2 importtime3 importjson4 importlxml.html5 from lxml importetree6 from HTMLParser import HTMLParser #使用beautifulsoup也可以
7
8 #http://www.crummy.com/software/BeautifulSoup/
9 #http://blog.csdn.net/my2010sam/article/details/14526223
10
11 try:12 from urllib.request importurlopen,Request13 except:14 from urllib2 importurlopen, Request15
16
17 area={"11":"北京","12":"天津","13":"河北","14":"山西","15":"内蒙古","21":"辽宁","22":"吉林","23":"黑龙江","31":"上海",18 "32":"江苏","33":"浙江","34":"安徽","35":"福建","36":"江西","37":"山东","41":"河南","42":"湖北","43":"湖南",19 "44":"广东","45":"广西","46":"海南","50":"重庆","51":"四川","52":"贵州","53":"云南","54":"西藏","61":"陕西",20 "62":"甘肃","63":"青海","64":"宁夏","65":"新疆","71":"台湾","81":"香港","82":"澳门","91":"国外"}21 ages =[0]*11
22 provinceCnt=[0]*91
23 RECORD_BY_EACH_PAGE = [10,15,30,50,5000]24 currentYear=time.localtime()[0]#get year
25 URL_BY_PAGESIZE='http://bzflh.szjs.gov.cn/TylhW/lhmcAction.do?pageSize=%s&method=queryYgbLhmcInfo&waittype=2'
26
27 #http://XXX.cn?pageSize=XXX&page=XXX,waittype=2 公租房,waittype=1 安居房
28 URL_BY_PAGE_PAGESIZE ='http://bzflh.szjs.gov.cn/TylhW/lhmcAction.do?pageSize=%s&method=queryYgbLhmcInfo&waittype=%s&page=%s'
29
30 #Social_Housing_Items=[URL_BY_PAGE_PAGESIZE_GongZuFang,URL_BY_PAGE_PAGESIZE_AnJuFang]
31
32 defgetHomePage(url,pagesize):33 try:34 request =Request(url)35 lines=urlopen(request,timeout=10).read()36 if len(lines)<20:37 return None #no data
38 exceptException as e:39 printe40 else:41 if pagesize!=10 and pagesize!=15 and pagesize!=30 and pagesize!=50 and pagesize !=5000:42 pagesize = 15 #default as 15 record each page
43 lines=lines.decode('utf-8')44 splitLines=lines.split('\r\n')45 for line insplitLines:46 #if "pageSize" in line:
47 #print line[:50]
48 if "pagebanner" inline:49 totalPage= line[:50].split('>')[1].split(' ')[0]50 totalPage=totalPage.split(',')51 if len(totalPage)>1:52 pages=(int(totalPage[0])*1000+int(totalPage[1]))/pagesize53 returnpages54
55 defgetRawData(url):56 try:57 request =Request(url)58 lines=urlopen(request,timeout=10).read()59 if len(lines)<20:60 return None #no data
61 exceptException as e:62 printe63 else:64 return lines.decode('utf-8')65
66 defgetIdentityInfo(code):67 """
68 :param code: identity code showing province and date69 :return: province,date70 """
71 provinceCode=code[:2]72 cityCode = code[2:6]73 date=code[6:10]74 returnprovinceCode,date75
76 classDataparser(HTMLParser):77 def __init__(self):78 HTMLParser.__init__(self)79 self.tr=False80 self.td =081 self.data =False82 defhandle_starttag(self,tag,attrs):83 """
84 参数tag是标签名,比如td,tr',attrs为标签所有属性(name,value)列表,这里是[('class','para')]85 :param tag:86 :param attrs:87 :return:88 """
89 if tag=='tr':90 self.tr=True91 if tag =='td'and self.tr==True:92 self.data =True93 for name,value inattrs:94 print "name and value are",name,value95 defhandle_endtag(self,tag):96 if tag=='td':97 self.data =False98 #print "a end tag:",tag,self.getpos()
99
100 defhandle_data(self,data):101 if self.data and len(data)==18 and '\r\n' not indata:102 #print data #ID card NO
103 provinceCode,date=getIdentityInfo(data)104 ageRange=currentYear -int(date)105 if ageRange>=100:106 print 'test',ageRange107 #ages[ageRange/10] +=1
108 #temp=area[provinceCode].decode('utf-8')
109 PC=int(provinceCode)110 provinceCnt[PC]+=1
111
112 if __name__ =='__main__':113 #计算总共页数,每页可以自己限定
114 for type in range(2):115 pages=getHomePage(URL_BY_PAGE_PAGESIZE%(RECORD_BY_EACH_PAGE[0],type+1,1),RECORD_BY_EACH_PAGE[4])116 parse=Dataparser()117 while pages>=1:118 #for page in range(pages):
119 lines=getRawData(URL_BY_PAGE_PAGESIZE%(RECORD_BY_EACH_PAGE[4],type+1,pages))120 parse.feed(lines)121 #parse.close()
122 pages-=1
123 parse.close()124 if type==0:125 print "深圳安居房申请人全国分布情况统计:"
126 for i inprovinceCnt:127 if i>0: #只打印有数据的省份
128 pIndex=str(provinceCnt.index(i))129 printarea[pIndex],i130 provinceCnt =[0]*91
131 elif type==1:132 print "深圳公租房申请人全国分布情况统计:"
133 for i inprovinceCnt:134 if i>0: #只打印有数据的省份
135 pIndex=str(provinceCnt.index(i))136 printarea[pIndex],i137 provinceCnt =[0]*91
公租房mysql_使用Python统计深圳市公租房申请人省份年龄统计相关推荐
- 使用Python统计深圳市轮候保障房申请人省份年龄统计
闲来无事,使用Python,HtmlParser来统计深圳市保障房申请人的原籍省份分布,年龄分布等.从侧面可以反映出来鹏城工作的地域分布.python 粗糙,见谅. 查询了系统,截止2016年2月,轮 ...
- python 小说词频统计_Python中文分词及词频统计
中文分词 中文分词(Chinese Word Segmentation),将中文语句切割成单独的词组.英文使用空格来分开每个单词的,而中文单独一个汉字跟词有时候完全不是同个含义,因此,中文分词相比英文 ...
- python统计有几个单词_统计文件中单词的个数---Shell及python版
最近在看shell中有个题目为统计单词的个数,使用了awk功能,代码如下 #!/bin/bash if [ $# -ne ];then echo "Usage:basename $0 fil ...
- python人脸头发身体部位识别人数统计
python人脸头发身体部位识别人数统计 如需安装运行环境或远程调试,可加QQ905733049, 或QQ2945218359由专业技术人员远程协助! 运行结果如下: 代码如下: import tim ...
- Python之pandas:利用describe函数统计【类别型】特征/离散型变量的描述性统计信息(包括个数count、unique、top及其freq、first、last)之详细攻略
Python之pandas:利用describe函数统计[类别型]特征/离散型变量的描述性统计信息(包括个数count.unique.top及其freq.first.last)之详细攻略 目录 利用d ...
- Python OpenCV识别行人入口进出人数统计
程序示例精选 Python OpenCV识别行人入口进出人数统计 如需安装运行环境或远程调试,见文章底部微信名片,由专业技术人员远程协助! 前言 这篇博客针对<Python OpenCV识别行 ...
- 利用python来自己写一个服务器台账统计小工具
利用python来自己写一个服务器台账统计小工具 前言 无奈呀,压力创造成品 背景是这样的,相信在看的各位在管理服务器密码的时候,肯定会有个台账啥的,当然咱也有,但是吧,为了安全期间,不允许出现在服务 ...
- python数据清洗实例_hive 的日志处理统计网站的 PV 、UV案例 与 给合 python的数据清洗数据案例...
一:hive 清理日志处理 统计PV.UV 访问量 二: hive 数据python 的数据清洗 一: 日志处理 统计每个时段网站的访问量: 1.1 在hive 上面创建表结构: 在创建表时不能直接导 ...
- python统计中文字符数量_Python实现统计文本文件字数的方法
本文实例讲述了Python实现统计文本文件字数的方法.分享给大家供大家参考,具体如下: 统计文本文件的字数,从当前目录下的file.txt取文件 # -*- coding: GBK -*- impor ...
最新文章
- Python学习笔记1 Python基础
- 图神经网络快速爆发,最新进展都在这里了
- ReentrantLock 实现原理
- dos与ddos攻击原理
- python的用途-请问在python中的% 是什么意思, 起到什么作用?
- 汽车全景标定(拼接)效果的检验方法
- mysql 开源 ~ canal+otter系列(2)
- Hello World With JBoss Modules
- SEM那些被人混淆的事儿(已完结)
- 香蕉派路由功Openwrt、Android功耗对照測试
- SAP云平台CloudFoundry上部署了一个应用的技术明细
- 为什么说php单线程,php单线程的缺点是什么?
- [Java学习资料] [成长之路]
- Java正则表达式总结
- 信息学奥赛一本通 2028:【例4.14】百钱买百鸡
- Mysql orangepi_SSH远程登录香橙派Orange Pi Zero2开发板的操作方法
- 广播接收者android,电话拦截广播,电话接收者demo
- 实现微信聊天机器人-初级篇
- 数字信号处理第二次试验:时域采样与频域采样
- 大数据高冷?10个有趣的大数据经典案例