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统计深圳市公租房申请人省份年龄统计相关推荐

  1. 使用Python统计深圳市轮候保障房申请人省份年龄统计

    闲来无事,使用Python,HtmlParser来统计深圳市保障房申请人的原籍省份分布,年龄分布等.从侧面可以反映出来鹏城工作的地域分布.python 粗糙,见谅. 查询了系统,截止2016年2月,轮 ...

  2. python 小说词频统计_Python中文分词及词频统计

    中文分词 中文分词(Chinese Word Segmentation),将中文语句切割成单独的词组.英文使用空格来分开每个单词的,而中文单独一个汉字跟词有时候完全不是同个含义,因此,中文分词相比英文 ...

  3. python统计有几个单词_统计文件中单词的个数---Shell及python版

    最近在看shell中有个题目为统计单词的个数,使用了awk功能,代码如下 #!/bin/bash if [ $# -ne ];then echo "Usage:basename $0 fil ...

  4. python人脸头发身体部位识别人数统计

    python人脸头发身体部位识别人数统计 如需安装运行环境或远程调试,可加QQ905733049, 或QQ2945218359由专业技术人员远程协助! 运行结果如下: 代码如下: import tim ...

  5. Python之pandas:利用describe函数统计【类别型】特征/离散型变量的描述性统计信息(包括个数count、unique、top及其freq、first、last)之详细攻略

    Python之pandas:利用describe函数统计[类别型]特征/离散型变量的描述性统计信息(包括个数count.unique.top及其freq.first.last)之详细攻略 目录 利用d ...

  6. Python OpenCV识别行人入口进出人数统计

     程序示例精选 Python OpenCV识别行人入口进出人数统计 如需安装运行环境或远程调试,见文章底部微信名片,由专业技术人员远程协助! 前言 这篇博客针对<Python OpenCV识别行 ...

  7. 利用python来自己写一个服务器台账统计小工具

    利用python来自己写一个服务器台账统计小工具 前言 无奈呀,压力创造成品 背景是这样的,相信在看的各位在管理服务器密码的时候,肯定会有个台账啥的,当然咱也有,但是吧,为了安全期间,不允许出现在服务 ...

  8. python数据清洗实例_hive 的日志处理统计网站的 PV 、UV案例 与 给合 python的数据清洗数据案例...

    一:hive 清理日志处理 统计PV.UV 访问量 二: hive 数据python 的数据清洗 一: 日志处理 统计每个时段网站的访问量: 1.1 在hive 上面创建表结构: 在创建表时不能直接导 ...

  9. python统计中文字符数量_Python实现统计文本文件字数的方法

    本文实例讲述了Python实现统计文本文件字数的方法.分享给大家供大家参考,具体如下: 统计文本文件的字数,从当前目录下的file.txt取文件 # -*- coding: GBK -*- impor ...

最新文章

  1. Python学习笔记1 Python基础
  2. 图神经网络快速爆发,最新进展都在这里了
  3. ReentrantLock 实现原理
  4. dos与ddos攻击原理
  5. python的用途-请问在python中的% 是什么意思, 起到什么作用?
  6. 汽车全景标定(拼接)效果的检验方法
  7. mysql 开源 ~ canal+otter系列(2)
  8. Hello World With JBoss Modules
  9. SEM那些被人混淆的事儿(已完结)
  10. 香蕉派路由功Openwrt、Android功耗对照測试
  11. SAP云平台CloudFoundry上部署了一个应用的技术明细
  12. 为什么说php单线程,php单线程的缺点是什么?
  13. [Java学习资料] [成长之路]
  14. Java正则表达式总结
  15. 信息学奥赛一本通 2028:【例4.14】百钱买百鸡
  16. Mysql orangepi_SSH远程登录香橙派Orange Pi Zero2开发板的操作方法
  17. 广播接收者android,电话拦截广播,电话接收者demo
  18. 实现微信聊天机器人-初级篇
  19. 数字信号处理第二次试验:时域采样与频域采样
  20. 大数据高冷?10个有趣的大数据经典案例

热门文章

  1. 2022年自学Python的万能神器,超有用
  2. Android - ViewModel LiveData
  3. PowerPoint 设置横坐标日期的起止值
  4. 解决GitHub下载速度太慢的问题
  5. Springboot实现PDF预览、下载、读取
  6. 企业网盘市场期待大爆发,联想能否“六连庄”?
  7. 最基本的TVS管系列型号,你了解吗?
  8. 助力双十二,CloudXNS誓要守好第一关。
  9. 创意摄影:用胶片拼贴人像
  10. 计算机音乐走在乡间的小路上,走在乡间的小路上歌曲简谱