WebResponse 取出全国省市区的邮编

WebResponse用法(根据省市区地址查询其邮编):

class Program
    {
        static string url { get; set; }
        static void Main(string[] args)
        {
            StringBuilder sb = new StringBuilder();
            try
            {
                SqlConnection conn = new SqlConnection("自己的数据库连接语句");
                SqlDataAdapter da = new SqlDataAdapter("查询语句", conn);
                DataSet ds = new DataSet();
                Random rd = new Random();
                da.Fill(ds);
                url = "http://opendata.baidu.com/post/s?wd={0}&rn=20";//请求地址
                for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
                {
                    var row = ds.Tables[0].Rows[i];
                    string keyworder = row["ProvinceName"] + " " + row["CityName"] + " " + row["DistrictName"];
                    sb.Append(GetZipCodeSql(keyworder, row["SysNo"].ToString()));

                    Thread.Sleep(rd.Next(0, 1000));//延时
                    if (i != 0 && i % 100 == 0)
                    {
                        WriteTxt(sb.ToString());

                        sb.Clear();
                    }
                    else if (i == ds.Tables[0].Rows.Count - 1)
                    {
                        WriteTxt(sb.ToString());

                        sb.Clear();
                    }
                }
            }
            catch (Exception ex)
            {
                System.Console.WriteLine(ex.Message);
            }
        }
        private static void WriteTxt(string text)
        {
            StreamWriter sw = File.AppendText("D:\\3.txt");//保存输出的位置
            sw.Write(text);
            sw.Close();
        }    //得到邮编
        private static string GetZipCodeSql(string keyworder, string sysNo)
        {
            StringBuilder sb = new StringBuilder();
            try
            {
                HttpWebRequest httpweb = (HttpWebRequest)WebRequest.Create(
                    new Uri(string.Format(url, HttpUtility.UrlEncode(keyworder, System.Text.Encoding.GetEncoding("GBK"))))
                        );
                WebResponse respon = httpweb.GetResponse();
                StreamReader reader = new StreamReader(respon.GetResponseStream(), Encoding.GetEncoding("GBK"));
                string html = reader.ReadToEnd();
                int statrtIndex = 0;
                int end = 0;
                string code = "";
                statrtIndex = html.IndexOf("<ul><!-- baidu-tc begin -->");
                if (statrtIndex > 0)
                {
                    end = html.IndexOf("</a>", statrtIndex);
                    statrtIndex = html.LastIndexOf("</em>", end);
                    code = Regex.Replace(html.Substring(end - 22, 22), @"[^0-9]", "");
                    //code = html.Substring(end - 6, 6);
                    sb.AppendFormat("UPDATE area SET ZipCode ={0} WHERE SysNo={1};\r\n", code, sysNo);
                }
                respon.Close();
            }
            catch (Exception)
            {
                url = "http://opendata.baidu.com/post/s?wd={0}&p=mini&rn=20";
                GetZipCodeSql(keyworder, sysNo);
            }

            return sb.ToString();
        }
    }
时间: 2024-11-03 20:26:26

WebResponse 取出全国省市区的邮编的相关文章

全国省市区数据库(带拼音、简称、行政编码、邮政编码等)

刚才在网上查询关于全国省市区数据库,比较坑的是数据比较全面的很少,全面的收费,心里很是不爽. 但是最终我还是抠到啦一份稍微不错的全国省市区数据库,并且带左边,简拼,简称,拼音,行政编码,邮政编码,城市三字码的数据. 这里我给大家分享下,希望能给有些需要的同学带去帮助. 创建数据库脚本 CREATE TABLE [dbo].[Region]( [Id] [int] NULL, [Name] [nvarchar](40) NULL, [ParentId] [int] NULL, [ShortName

全国省市区数据库,带拼音,简称,行政编码,邮政编码等

前言 刚才在网上查询关于全国省市区数据库,比较坑的是数据比较全面的很少,全面的收费,心里很是不爽. 但是最终我还是抠到啦一份稍微不错的全国省市区数据库,并且带左边,简拼,简称,拼音,行政编码,邮政编码,城市三字码的数据. 这里我给大家分享下,希望能给有些需要的同学带去帮助. 图片效果展示 数据分享 创建数据库脚本 CREATE TABLE [dbo].[Region]( [Id] [int] NULL, [Name] [nvarchar](40) NULL, [ParentId] [int] N

PHP全国省市区地址分割提取脚本程序

github地址: https://github.com/zmxfree/addressapart 比如将 浙江省杭州市江干区XX路X号 分割成 浙江省 杭州市 江干区 XX路X号,方便excel操作. 目前支持大部分中国省市区地址信息的分割,可以自行更新地址源信息. 主程序代码: <?php /**- * 省市区地址分割 * 将 浙江省杭州市江干区XX路X号 分割成 浙江省 杭州市 江干区 XX路X号 * User: [email protected] * Date: 14-6-18 * Ti

javaWeb数据库动态加载全国省市区三级联动

首先声明一下,全国省市区三级联动有很多的插件.没有必要这么麻烦的把省市区存到数据库,然后再获取.这样缺点很明显: 缺点:使用数据库,每次动态ajax获取数据都要操作一次数据库,增加了数据库的负担.不推荐这样做,直接使用插件比较好. 一些Jquery插件比较省时省力,不用来回操作数据库,就能达到你想要的效果,页面修饰就要自己设计咯.而且使用数据库你还要事先把省市区数据存到数据库,耗费精力,及时有一些现成的sql文件可以导入.但是感觉好麻烦有没有,博主算是试了一次. 好了说了很多废话,开始上代码吧:

三级联动查询全国省市区(xml与数据库)

提供有china.xml和china.sql文件,实现全国省市区的三级联动效果 一.xml实现 import java.awt.EventQueue; import javax.swing.JFrame;import javax.swing.JPanel;import javax.swing.border.EmptyBorder;import javax.swing.JComboBox;import javax.swing.JLabel; import org.dom4j.Attribute;i

2019年最新全国省市区街道共46462条数据(统计局MySQL数据库)

2019年最新全国省市区街道共46462条数据(统计局MySQL数据库) 查看百度网盘: 看到有很多朋友没有积分,很理解找资源费时间的心情,现已上传到百度云盘,直接下载 https://pan.baidu.com/s/1fDeEp5C-WGx-6Z1xPDjwGg 提取码:9ki4 只求给文章点个赞,让更多需要的人看到 原文地址:https://www.cnblogs.com/hfultrastrong/p/12689724.html

全国省市区数据SQL - 省市区

1 DROP TABLE IF EXISTS `provinces`; 2 CREATE TABLE `provinces` ( 3 `id` int(11) NOT NULL auto_increment, 4 `provinceid` varchar(20) NOT NULL, 5 `province` varchar(50) NOT NULL, 6 PRIMARY KEY (`id`) 7 ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='省份信息

jquery理想菜单实现(显示全国省市区分级效果)

<!DOCTYPE html><html lang="zh-cn">    <head>        <meta charset="utf-8">        <meta name="viewport" content="width=device-width, initial-scale=1">        <link rel="icon&quo

全国省市区Json文件 ,做省市区联动很轻松

省份 [{"name":"安徽省", "code":"340000"},{"name":"北京市", "code":"110000"},{"name":"福建省", "code":"350000"},{"name":"甘肃省",