做GIS的有时候会需要用到各个行政区划的代码,最近有这个需求,就上网搜了一下,想说发挥下拿来主义,果然找到了Conanca的一篇帖子 里面附了python源码与结果,就拿来修改了一下,以下附上源码
如果需要结果或者源码,可以到github下载或者到我的资源下载结果
# -*- coding: gb2312 -*-
'''
@author Conanca
@mender jincheng
'''
import urllib2,re,os,sys
url_prefix = 'http://www.stats.gov.cn/tjbz/xzqhdm/'
xzqh_url = 't20021125_46784.htm'
print "开始查找"
content = urllib2.urlopen(url_prefix+xzqh_url).read()
code_rule = re.compile(r'<SPAN lang=EN-US style="FONT-SIZE: 12pt; LETTER-SPACING: 0pt">(.*?)</SPAN>')
'''110101 东城区'''
codes=re.findall(code_rule,content)
name_rule = re.compile(r'<SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; LETTER-SPACING: 0pt; mso-ascii-font-family: \'Times New Roman\'; mso-hansi-font-family: \'Times New Roman\'">(.*?)</SPAN>')
names=re.findall(name_rule,content)
names.remove('名称')
i=0
string = ''
print len(names)
print len(codes)
while i < len(names):
string=string+codes[i].split(' ')[0]+':'+names[i] + "\n"
i+=1
print '拼凑结束,写文件'
fileWrite = open('bak.txt','w+')
fileWrite.writelines(string)
fileWrite.close()
print '写文件结束'
print "结束"
与Conanca的方法不同的是,在搜索内容的时候,我使用了正则的方法,name_rule与code_rule只适用于这一特例。