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 = ; i < ds.Tables[].Rows.Count; i++)
{
var row = ds.Tables[].Rows[i];
string keyworder = row["ProvinceName"] + " " + row["CityName"] + " " + row["DistrictName"];
sb.Append(GetZipCodeSql(keyworder, row["SysNo"].ToString())); Thread.Sleep(rd.Next(, ));//延时
if (i != && i % == )
{
WriteTxt(sb.ToString()); sb.Clear();
}
else if (i == ds.Tables[].Rows.Count - )
{
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 = ;
int end = ;
string code = "";
statrtIndex = html.IndexOf("<ul><!-- baidu-tc begin -->");
if (statrtIndex > )
{
end = html.IndexOf("</a>", statrtIndex);
statrtIndex = html.LastIndexOf("</em>", end);
code = Regex.Replace(html.Substring(end - , ), @"[^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();
}
}
WebResponse 取出全国省市区的邮编的更多相关文章
- Mysql学习---全国省市区以及邮编数据库
更多下载
- 三级联动查询全国省市区(xml与数据库)
提供有china.xml和china.sql文件,实现全国省市区的三级联动效果 一.xml实现 import java.awt.EventQueue; import javax.swing.JFram ...
- PHP全国省市区地址分割提取脚本程序
github地址: https://github.com/zmxfree/addressapart 比如将 浙江省杭州市江干区XX路X号 分割成 浙江省 杭州市 江干区 XX路X号,方便excel操作 ...
- selenium,webdriver,xpath获取全国各地的邮编
代码要多敲 注释要清晰 其中区号没有拿取出来 看到的朋友可以作为练习 ,有好的方法可以在下面留言 from selenium import webdriver from lxml import etr ...
- 省市区三级联动(附j全国省市区json文件)
效果如图所示: 首先提供全国所有省份的JS文件 下载地址:https://files.cnblogs.com/files/likui-bookHouse/address.rar 打开js内容如下: h ...
- jquery全国省市区三级联动插件distpicker
使用步骤: 1.引入js <script src="distpicker/jquery.min.js" type="text/javascript" ch ...
- js 实现全国省市区三级联动
效果: index.html <!DOCTYPE html> <html> <head> <meta charset="utf-8" /& ...
- 全国省市区三级联动js
function Dsy(){ this.Items = {}; } Dsy.prototype.add = function(id,iArray){ this.Items[id] = iArray; ...
- 全国省市区Json文件 ,做省市区联动很轻松
省份 [{"name":"安徽省", "code":"340000"},{"name":" ...
随机推荐
- Autofac实例生命周期
1.默认,每次请求都会返回一个实例 builder.RegisterType<X>().InstancePerDependency(); 2.Per Lifetime Scope:这个作用 ...
- 我的第一个javascript网页作业
1: <html> 2: <title> 3: 4: </title> 5: <body> 6: <style type="text ...
- HDOJ 1151 Air Raid
最小点覆盖 Air Raid Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) T ...
- exosip
exosip针对UA是对osip进行扩展,oSIP不提供不论什么高速产生请求消息和响应消息的方法,全部请求消息和响应消息的形成必须调用一组sip message api来手动组装完毕,所以作者在osi ...
- C++ Brush
关键点 实现过程 void CCreateBrushView::OnDraw(CDC* pDC) { CCreateBrushDoc* pDoc = GetDocument(); AS ...
- [Angular 2] Understanding Pure & Impure pipe
First, how to use a build in pipe: <div class="pipe-example"> <label>Uppercase ...
- innodb_max_dirty_pages_pct与检查点的关系
http://ourmysql.com/archives/310 数据库运行一段时间后,经常导致服务器大量的swap,我怀疑是innodb中的脏数据太多了,因为没有free space了,mysq ...
- Python学习 之 走进python
1.Python:是一种解释型的.面向对象的.带有动态语义的高级程序设计语言. 2.Python发展阶段 —CNRI时期 —BeOpen时期 —DC时期 —Python 3.0 Python里程碑:2 ...
- javascript数组总结(0504)
一:数组复制 //方法一//slice()函数将会返回一个新的数组对象 var arr = [1,2,3,4]; var clone = arr.slice(0); arr.splice(1,2);/ ...
- Redis 服务器
Redis 服务器命令主要是用于管理 redis 服务. 实例 以下实例演示了如何获取 redis 服务器的统计信息: redis 127.0.0.1:6379> INFO # Server r ...