
sql數據下載:http://download.csdn.net/download/linyongqin/10224874
獲取省、市、區
網址:http://www.mca.gov.cn/article/sj/tjbz/a/2017/
獲取省、市、區、街道、村
網址:http://www.stats.gov.cn/tjsj/tjbz/tjyqhdmhcxhfdm/
統計用區划代碼和城鄉划分代碼編制規則
--北京、天津、上海、重慶 INSERT INTO dmb_city (CityCode,CityName,CityLevel,CityRemark) VALUES ('110100','市轄區',2,'city'); INSERT INTO dmb_city (CityCode,CityName,CityLevel,CityRemark) VALUES ('120100','市轄區',2,'city'); INSERT INTO dmb_city (CityCode,CityName,CityLevel,CityRemark) VALUES ('310100','市轄區',2,'city'); INSERT INTO dmb_city (CityCode,CityName,CityLevel,CityRemark) VALUES ('500100','市轄區',2,'city'); -- 省 province -- 市 city -- 區 area -- 街道 town select * from dmb_city where CityCode like '%00' and CityLevel<>1 --市 update dmb_city set CityLevel=1,CityRemark='province' where where CityCode like '%0000' update dmb_city set CityLevel=2,CityRemark='city' where where CityCode like '%00' update dmb_city set CityLevel=3,CityRemark='area' where where CityLevel not in (1,2) --110000 --130200 select * from dmb_city where CityLevel=3 or CityLevel=1 --更新父級代碼 update dmb_city set ParentCode=substring(CityCode,1,2)+'0000' where CityLevel=2 update dmb_city set ParentCode=substring(CityCode,1,4)+'00' where CityLevel=3 update dmb_city set ParentCode=substring(CityCode,1,6) where CityLevel=4 update dmb_city set CityName=substring(CityName,1,len(CityName)-1) where CityName like '%街道辦'
#region 根據區獲取街道信息 WebClient wc = new WebClient(); Stopwatch sw = new Stopwatch(); sw.Start(); Response.Write("<p>-------------------- 獲取數據 begin --------------------</p>"); long index = 0; StringBuilder sb = new StringBuilder(); sb.Append("INSERT INTO dmb_city (CityCode,CityName) VALUES "); DataTable dt = SqlHelper.ExecuteDataset(SqlHelper.connectionString, CommandType.Text, "select * from dmb_city where CityLevel=3").Tables[0]; foreach (DataRow dr in dt.Rows) { //Response.Write("<p>" + dr["CityCode"] + "-" + dr["CityName"]+"</p>"); try { //http://www.stats.gov.cn/tjsj/tjbz/tjyqhdmhcxhfdm/2016/44/05/440511.html //拼接網址 string url = "http://www.stats.gov.cn/tjsj/tjbz/tjyqhdmhcxhfdm/2016/" + dr["CityCode"].ToString().Substring(0, 2) + "/" + dr["CityCode"].ToString().Substring(2, 2) + "/" + dr["CityCode"].ToString() + ".html"; string html = wc.DownloadString(url); MatchCollection mc = Regex.Matches(html, "<tr\\sclass='towntr'><td><a\\shref='.+?'>(.+?)</a></td><td><a\\shref='.+?'>(.+?)</a></td></tr>"); int i = 0; //遍歷匹配的內容 foreach (Match item in mc) { if (item.Success) { //Response.Write(item.Groups[1].Value); //拼接SQL 過濾無效字符 sb.Append("('" + item.Groups[1].Value.Substring(0, 9) + "','" + item.Groups[2].Value.Replace("辦事處", "").Replace("街道辦", "街道") + "')"); index++; if (index > 900) { sb.Append(";"); index = 1; sb.Append("INSERT INTO dmb_city (CityCode,CityName) VALUES "); } else { sb.Append(","); } } } } catch { //獲取不到網絡鏈接直接跳過 continue; } } Response.Write("<p>" + sb.ToString().TrimEnd(',') + ";</p>"); Response.Write("<p>-------------------- 獲取數據 end --------------------</p>"); sw.Stop(); Response.Write("<p>-------------------- 共用 " + sw.ElapsedMilliseconds + "毫秒 --------------------</p>"); #endregion