搜狐"天气预报"的获取方法

今天看到搜狐的天气预报还不错,就产生了把它抓取下来使用的想法.
图片如下所示:

  1
  2
  3namespace SoHuWeather
  4{
  5    using System;
  6    using System.Collections.Generic;
  7    using System.ComponentModel;
  8    using System.Data;
  9    using System.Drawing;
 10    using System.Text;
 11    using System.Windows.Forms;
 12    public partial class Form1 : Form
 13    {
 14        public Form1()
 15        {
 16            InitializeComponent();
 17            webBrowser1.Navigate("about:blank");
 18            Weather.FillCboProvinces(cboProvinces);
 19            cboProvinces.SelectedIndex = 0;
 20            Weather.FillCboCitys(cboCity, cboProvinces.Text);
 21            cboCity.SelectedIndex = 0;
 22        }

 23
 24        private void button1_Click(object sender, EventArgs e)
 25        {
 26            if (cboCity.SelectedIndex != -1)
 27                webBrowser1.Navigate(Weather.GetWeather(cboCity.Text));
 28        }

 29
 30        private void cboProvinces_SelectedIndexChanged(object sender, EventArgs e)
 31        {
 32            if (cboProvinces.SelectedIndex != -1)
 33            {
 34                Weather.FillCboCitys(cboCity, cboProvinces.Text);
 35                cboCity.SelectedIndex = 0;
 36            }

 37
 38        }

 39    }

 40    public class Weather
 41    {
 42        static Dictionary<stringstring> Provinces = new Dictionary<stringstring>();
 43        static Dictionary<stringstring> Citys = new Dictionary<stringstring>();
 44        static Weather()
 45        {
 46            FillProvinces();
 47            FillCitys();
 48        }

 49
 50        private static void FillProvinces()
 51        {
 52            Provinces.Add("110000""北京市");
 53            Provinces.Add("120000""天津市");
 54            Provinces.Add("500000""重庆市");
 55            Provinces.Add("130000""河北省");
 56            Provinces.Add("140000""山西省");
 57            Provinces.Add("150000""内蒙古");
 58            Provinces.Add("210000""辽宁省");
 59            Provinces.Add("220000""吉林省");
 60            Provinces.Add("230000""黑龙江省");
 61            Provinces.Add("310000""上海市");
 62            Provinces.Add("320000""江苏省");
 63            Provinces.Add("330000""浙江省");
 64            Provinces.Add("340000""安徽省");
 65            Provinces.Add("350000""福建省");
 66            Provinces.Add("360000""江西省");
 67            Provinces.Add("370000""山东省");
 68            Provinces.Add("410000""河南省");
 69            Provinces.Add("420000""湖北省");
 70            Provinces.Add("430000""湖南省");
 71            Provinces.Add("440000""广东省");
 72            Provinces.Add("450000""广西");
 73            Provinces.Add("460000""海南省");
 74            Provinces.Add("510000""四川省");
 75            Provinces.Add("520000""贵州省");
 76            Provinces.Add("530000""云南省");
 77            Provinces.Add("540000""西藏");
 78            Provinces.Add("610000""陕西省");
 79            Provinces.Add("620000""甘肃省");
 80            Provinces.Add("630000""青海省");
 81            Provinces.Add("640000""宁夏");
 82            Provinces.Add("650000""新疆");
 83            Provinces.Add("710000""台湾省");
 84            Provinces.Add("810000""香港");
 85            Provinces.Add("820000""澳门");
 86        }

 87
 88        private static void FillCitys()
 89        {
 90            Citys.Add("110100""北京");
 91            Citys.Add("120100""天津");
 92            Citys.Add("130101""石家庄");
 93            Citys.Add("130102""廊坊");
 94            Citys.Add("130103""北戴河");
 95            Citys.Add("130105""承德");
 96            Citys.Add("130106""唐山");
 97            Citys.Add("130107""南戴河");
 98            Citys.Add("130108""西柏坡");
 99            Citys.Add("130109""秦皇岛");
100            Citys.Add("130110""沧州");
101            Citys.Add("130112""涿州市");
102            Citys.Add("130113""坝上草原");
103            Citys.Add("130114""邯郸");
104            Citys.Add("130115""衡水");
105            Citys.Add("130117""菩提岛");
106            Citys.Add("130118""邢台");
107            Citys.Add("130120""雾灵山");
108            Citys.Add("130121""保定");
109            Citys.Add("130123""张家口");
110            Citys.Add("140201""太原");
111            Citys.Add("140202""忻州");
112            Citys.Add("140203""五台山");
113            Citys.Add("140204""临汾");
114            Citys.Add("140205""运城");
115            Citys.Add("140206""长治");
116            Citys.Add("140207""大同");
117            Citys.Add("140208""晋城");
118            Citys.Add("140209""朔州");
119            Citys.Add("140210""榆次");
120            Citys.Add("140211""阳泉");
121            Citys.Add("140212""晋中");
122            Citys.Add("140213""悬空寺");
123            Citys.Add("150101""呼和浩特");
124            Citys.Add("150102""牙克石市");
125            Citys.Add("150103""满洲里");
126            Citys.Add("150104""包头");
127            Citys.Add("150105""海拉尔");
128            Citys.Add("150106""乌海");
129            Citys.Add("150107""临河");
130            Citys.Add("150108""赤峰");
131            Citys.Add("150109""集宁");
132            Citys.Add("150110""通辽");
133            Citys.Add("150111""乌兰浩特");
134            Citys.Add("150112""呼伦贝尔");
135            Citys.Add("150113""锡林浩特");
136            Citys.Add("150114""鄂尔多斯");
137            Citys.Add("150115""扎兰屯市");
138            Citys.Add("150116""巴彦浩特");
139            Citys.Add("210101""沈阳");
140            Citys.Add("210102""葫芦岛");
141            Citys.Add("210103""辽阳");
142            Citys.Add("210104""大连");
143            Citys.Add("210105""营口");
144            Citys.Add("210106""瓦房店市");
145            Citys.Add("210107""丹东");
146            Citys.Add("210108""盘锦");
147            Citys.Add("210109""铁岭");
148            Citys.Add("210110""鞍山");
149            Citys.Add("210111""阜新");
150            Citys.Add("210112""北票市");
151            Citys.Add("210113""抚顺");
152            //Citys.Add("210114","丹东");
153            Citys.Add("210115""本溪");
154            Citys.Add("210116""朝阳");
155            Citys.Add("210117""锦州");
156            Citys.Add("220101""长春");
157            Citys.Add("220102""长白市");
158            Citys.Add("220103""大安市");
159            Citys.Add("220104""吉林");
160            Citys.Add("220105""松原");
161            Citys.Add("220106""四平");
162            Citys.Add("220107""九台");
163            Citys.Add("220108""辽源");
164            Citys.Add("220109""洮南");
165            Citys.Add("220110""通化");
166            Citys.Add("220111""公主岭市");
167            Citys.Add("220112""白城");
168            Citys.Add("220114""延吉");
169            Citys.Add("220115""集安市");
170            Citys.Add("230101""哈尔滨");
171            Citys.Add("230102""黑河");
172            Citys.Add("230103""双鸭山");
173            Citys.Add("230104""绥汾河");
174            Citys.Add("230105""牡丹江");
175            Citys.Add("230106""绥化");
176            Citys.Add("230107""七台河");
177            Citys.Add("230108""嫩江");
178            Citys.Add("230109""大庆");
179            Citys.Add("230110""齐齐哈尔");
180            Citys.Add("230111""大兴安岭");
181            Citys.Add("230112""佳木斯");
182            Citys.Add("230113""阿城市");
183            Citys.Add("230114""同江市");
184            Citys.Add("230115""鹤岗");
185            Citys.Add("230116""北安市");
186            Citys.Add("230117""鸡西");
187            Citys.Add("230118""尚志市");
188            Citys.Add("230119""讷河");
189            Citys.Add("310100""上海");
190            Citys.Add("320101""南京");
191            Citys.Add("320102""苏州");
192            Citys.Add("320103""仪征市");
193            Citys.Add("320104""徐州");
194            Citys.Add("320105""淮安");
195            Citys.Add("320106""常熟市");
196            Citys.Add("320107""连云港");
197            Citys.Add("320108""盐城");
198            Citys.Add("320109""兴化市");
199            Citys.Add("320110""常州");
200            Citys.Add("320111""镇江");
201            Citys.Add("320112""江阴市");
202            Citys.Add("320113""无锡");
203            Citys.Add("320114""宿迁");
204            Citys.Add("320116""扬州");
205            Citys.Add("320117""泰州");
206            Citys.Add("320118""南通");
207            Citys.Add("320119""宜兴");
208            Citys.Add("330101""杭州");
209            Citys.Add("330102""衢州");
210            Citys.Add("330103""义乌市");
211            Citys.Add("330104""宁波");
212            Citys.Add("330105""舟山");
213            Citys.Add("330106""海宁");
214            Citys.Add("330107""温州");
215            Citys.Add("330108""台州");
216            Citys.Add("330109""萧山市");
217            Citys.Add("330110""嘉兴");
218            Citys.Add("330111""余姚市");
219            Citys.Add("330112""湖州");
220            Citys.Add("330114""绍兴");
221            Citys.Add("330115""海盐");
222            Citys.Add("330116""金华");
223            Citys.Add("330117""丽水");
224            Citys.Add("340101""合肥");
225            Citys.Add("340102""淮南");
226            Citys.Add("340103""滁州");
227            Citys.Add("340104""巢湖");
228            Citys.Add("340105""淮北");
229            Citys.Add("340106""阜阳");
230            Citys.Add("340107""宣州");
231            Citys.Add("340108""芜湖");
232            Citys.Add("340109""宿州");
233            Citys.Add("340110""池州");
234            Citys.Add("340111""铜陵");
235            Citys.Add("340113""六安");
236            Citys.Add("340114""马鞍山");
237            Citys.Add("340115""亳州");
238            Citys.Add("340116""安庆");
239            Citys.Add("340117""蚌埠");
240            Citys.Add("340118""黄山区");
241            Citys.Add("350101""福州");
242            Citys.Add("350102""龙岩");
243            Citys.Add("350103""厦门");
244            Citys.Add("350104""宁德");
245            Citys.Add("350105""三明");
246            Citys.Add("350106""武夷山");
247            Citys.Add("350107""莆田");
248            Citys.Add("350108""泉州");
249            Citys.Add("350109""漳州");
250            Citys.Add("350110""南平");
251            Citys.Add("360101""南昌");
252            Citys.Add("360102""吉安");
253            Citys.Add("360103""庐山");
254            Citys.Add("360104""抚州");
255            Citys.Add("360105""景德镇");
256            Citys.Add("360106""上饶");
257            Citys.Add("360107""九江");
258            Citys.Add("360108""赣州");
259            Citys.Add("360109""萍乡");
260            Citys.Add("360110""井冈山");
261            Citys.Add("360111""新余");
262            Citys.Add("360112""鹰潭");
263            Citys.Add("360113""宜春");
264            Citys.Add("370101""济南");
265            Citys.Add("370102""淄博");
266            Citys.Add("370103""枣庄");
267            Citys.Add("370104""青岛");
268            Citys.Add("370105""济宁");
269            Citys.Add("370106""日照");
270            Citys.Add("370107""威海");
271            Citys.Add("370108""滨州");
272            Citys.Add("370109""莱芜");
273            Citys.Add("370110""烟台");
274            Citys.Add("370111""菏泽");
275            //Citys.Add("370112","蓬莱仙境");
276            Citys.Add("370113""潍坊");
277            Citys.Add("370114""聊城");
278            Citys.Add("370115""曲阜");
279            Citys.Add("370116""德州");
280            Citys.Add("370117""东营");
281            Citys.Add("370118""长岛");
282            Citys.Add("370119""临沂");
283            Citys.Add("370120""泰安");
284            Citys.Add("410101""郑州");
285            Citys.Add("410102""安阳");
286            Citys.Add("410103""濮阳");
287            Citys.Add("410104""开封");
288            Citys.Add("410105""信阳");
289            Citys.Add("410106""驻马店");
290            Citys.Add("410107""洛阳");
291            Citys.Add("410108""商丘");
292            Citys.Add("410109""周口");
293            Citys.Add("410110""平顶山");
294            Citys.Add("410111""南阳");
295            Citys.Add("410113""焦作");
296            Citys.Add("410114""三门峡");
297            Citys.Add("410116""鹤壁");
298            Citys.Add("410117""漯河");
299            Citys.Add("410118""新乡");
300            Citys.Add("410119""许昌");
301            Citys.Add("420101""武汉");
302            Citys.Add("420102""孝感");
303            Citys.Add("420103""恩施");
304            Citys.Add("420104""天门市");
305            Citys.Add("420105""黄石");
306            Citys.Add("420106""咸宁");
307            Citys.Add("420107""随州");
308            Citys.Add("420108""麻城市");
309            Citys.Add("420109""襄樊");
310            Citys.Add("420110""黄冈");
311            Citys.Add("420111""宜昌");
312            Citys.Add("420112""荆州");
313            Citys.Add("420113""荆门");
314            Citys.Add("420114""丹江口市");
315            Citys.Add("420115""鄂州");
316            Citys.Add("420117""十堰");
317            Citys.Add("430101""长沙");
318            Citys.Add("430102""常德");
319            Citys.Add("430103""吉首");
320            Citys.Add("430104""株州");
321            Citys.Add("430105""张家界");
322            Citys.Add("430106""韶山");
323            Citys.Add("430107""娄底");
324            Citys.Add("430108""郴州");
325            Citys.Add("430109""冷水江市");
326            Citys.Add("430110""湘潭");
327            Citys.Add("430111""益阳");
328            Citys.Add("430112""冷水滩市");
329            Citys.Add("430113""衡阳");
330            Citys.Add("430114""永州");
331            Citys.Add("430115""耒阳市");
332            Citys.Add("430116""邵阳");
333            Citys.Add("430117""怀化");
334            Citys.Add("430119""岳阳");
335            Citys.Add("440101""广州");
336            Citys.Add("440102""东莞");
337            Citys.Add("440103""清远");
338            Citys.Add("440104""顺德");
339            Citys.Add("440105""深圳");
340            Citys.Add("440106""中山");
341            Citys.Add("440107""惠州");
342            Citys.Add("440108""云浮");
343            Citys.Add("440109""珠海");
344            Citys.Add("440110""江门");
345            Citys.Add("440111""汕尾");
346            Citys.Add("440112""汕头");
347            Citys.Add("440113""佛山");
348            Citys.Add("440114""揭阳");
349            Citys.Add("440115""湛江");
350            Citys.Add("440116""茂名");
351            Citys.Add("440117""潮州");
352            Citys.Add("440118""韶关");
353            Citys.Add("440119""阳江");
354            Citys.Add("440120""河源");
355            Citys.Add("440121""梅州");
356            Citys.Add("440122""肇庆");
357            Citys.Add("440123""潮阳");
358            Citys.Add("450101""南宁");
359            Citys.Add("450102""梧州");
360            Citys.Add("450103""柳州");
361            //Citys.Add("450104","来宾");
362            Citys.Add("450105""桂林");
363            Citys.Add("450106""防城港");
364            Citys.Add("450107""北海");
365            Citys.Add("450109""玉林");
366            //Citys.Add("450110","贵港");
367            Citys.Add("450111""百色");
368            Citys.Add("450112""钦州");
369            Citys.Add("450113""河池");
370            Citys.Add("460100""海口");
371            Citys.Add("460101""三亚");
372            Citys.Add("460102""西沙群岛");
373            Citys.Add("460103""通什市");
374            Citys.Add("500100""重庆");
375            Citys.Add("510101""成都");
376            Citys.Add("510102""广元");
377            Citys.Add("510103""广安");
378            Citys.Add("510104""巴中");
379            Citys.Add("510105""宜宾");
380            Citys.Add("510106""自贡");
381            Citys.Add("510107""内江");
382            Citys.Add("510108""乐山");
383            Citys.Add("510109""都江堰");
384            Citys.Add("510110""阿坝");
385            Citys.Add("510111""攀枝花");
386            Citys.Add("510112""雅安");
387            Citys.Add("510113""遂宁");
388            Citys.Add("510114""甘孜");
389            Citys.Add("510115""泸州");
390            Citys.Add("510116""涪陵");
391            Citys.Add("510117""眉山");
392            Citys.Add("510118""九寨沟");
393            Citys.Add("510119""西昌");
394            Citys.Add("510120""峨眉山");
395            Citys.Add("510121""绵阳");
396            Citys.Add("510122""资阳");
397            Citys.Add("510123""南充");
398            Citys.Add("510124""达州");
399            Citys.Add("510125""德阳");
400            Citys.Add("520101""贵阳");
401            Citys.Add("520102""铜仁");
402            Citys.Add("520103""绥阳");
403            Citys.Add("520104""六盘水");
404            Citys.Add("520105""凯里");
405            Citys.Add("520107""遵义");
406            Citys.Add("520108""毕节");
407            Citys.Add("520109""台江");
408            Citys.Add("520110""安顺");
409            Citys.Add("520111""兴义");
410            Citys.Add("520112""镇远");
411            Citys.Add("520113""都匀");
412            Citys.Add("520114""赤水");
413            Citys.Add("520115""黄果树");
414            Citys.Add("520116""开阳");
415            Citys.Add("530101""昆明");
416            Citys.Add("530102""楚雄");
417            Citys.Add("530103""曲靖");
418            Citys.Add("530104""红河");
419            Citys.Add("530105""玉溪");
420            Citys.Add("530106""文山");
421            Citys.Add("530107""昭通");
422            Citys.Add("530108""思茅");
423            Citys.Add("530109""保山");
424            Citys.Add("530110""西双版纳");
425            Citys.Add("530111""丽江");
426            Citys.Add("530112""大理");
427            Citys.Add("530113""德宏");
428            Citys.Add("530114""中甸");
429            Citys.Add("530115""临沧");
430            Citys.Add("530116""怒江");
431            Citys.Add("540101""拉萨");
432            Citys.Add("540102""日喀则");
433            Citys.Add("540103""那曲");
434            Citys.Add("540104""昌都");
435            Citys.Add("540105""林芝");
436            Citys.Add("540107""狮泉河");
437            Citys.Add("540108""泽当");
438            Citys.Add("610101""西安");
439            Citys.Add("610102""安康");
440            Citys.Add("610103""延安");
441            Citys.Add("610104""商洛");
442            Citys.Add("610105""宝鸡");
443            Citys.Add("610106""榆林");
444            Citys.Add("610107""咸阳");
445            Citys.Add("610108""汉中");
446            Citys.Add("610109""渭南");
447            Citys.Add("610110""铜川");
448            Citys.Add("620101""兰州");
449            Citys.Add("620102""张掖");
450            Citys.Add("620103""甘南");
451            Citys.Add("620104""敦煌");
452            Citys.Add("620105""武威");
453            Citys.Add("620106""西峰市");
454            Citys.Add("620107""定西");
455            Citys.Add("620108""白银");
456            Citys.Add("620109""天水");
457            Citys.Add("620110""平凉");
458            Citys.Add("620111""嘉峪关");
459            Citys.Add("620112""庆阳");
460            Citys.Add("620113""酒泉");
461            Citys.Add("620114""临夏");
462            Citys.Add("620115""武都");
463            Citys.Add("620116""金昌");
464            Citys.Add("630101""西宁");
465            Citys.Add("630102""果洛");
466            Citys.Add("630103""德令哈");
467            Citys.Add("630104""玉树");
468            Citys.Add("630105""曲麻莱");
469            Citys.Add("630106""兴海");
470            Citys.Add("630107""甘德");
471            Citys.Add("630108""格尔木");
472            Citys.Add("630109""海东");
473            Citys.Add("630110""刚察");
474            Citys.Add("630111""同德");
475            Citys.Add("630112""同仁");
476            Citys.Add("630113""海晏");
477            Citys.Add("630114""共和");
478            Citys.Add("640100""银川");
479            Citys.Add("640101""石嘴山");
480            Citys.Add("640102""吴忠");
481            Citys.Add("640103""青铜峡");
482            Citys.Add("640104""固原");
483            Citys.Add("640105""中卫");
484            Citys.Add("650101""乌鲁木齐");
485            Citys.Add("650102""库尔勒");
486            Citys.Add("650103""塔城");
487            Citys.Add("650104""焉耆");
488            Citys.Add("650105""克拉玛依");
489            Citys.Add("650106""哈密");
490            Citys.Add("650107""吐鲁番");
491            Citys.Add("650108""民丰");
492            Citys.Add("650109""伊宁");
493            Citys.Add("650110""博乐");
494            Citys.Add("650111""石河子");
495            Citys.Add("650112""阿勒泰");
496            Citys.Add("650113""喀什");
497            Citys.Add("650114""和田");
498            Citys.Add("650115""阿克苏");
499            Citys.Add("650117""奎屯");
500            Citys.Add("650118""阿图什");
501            Citys.Add("650119""和硕");
502            Citys.Add("710100""台北");
503            Citys.Add("820100""澳门");
504            Citys.Add("810100""香港");
505        }

506        public static void FillCboProvinces(ComboBox cbo)
507        {
508            cbo.Items.Clear();
509            Dictionary<string,string>.Enumerator dev = Provinces.GetEnumerator();
510            while (dev.MoveNext())
511            {
512                cbo.Items.Add(dev.Current.Value);
513            }

514        }

515        public static void FillCboCitys(ComboBox cbo, string provinces)
516        {
517            string ProvinceKey = GetProvincesKey(Provinces.GetEnumerator(), provinces);
518            cbo.Items.Clear();
519            if (ProvinceKey == "")
520                return;
521            ProvinceKey = ProvinceKey.Substring(02);
522            bool start = false;
523            Dictionary<stringstring>.Enumerator dev = Citys.GetEnumerator();
524            while (dev.MoveNext())
525            {
526                if(dev.Current.Key.StartsWith(ProvinceKey))
527                    cbo.Items.Add(dev.Current.Value);
528            }

529        }

530        private static string GetProvincesKey(Dictionary<string,string>.Enumerator dev,string  provinces)
531        {
532            while (dev.MoveNext())
533            {
534                if (dev.Current.Value == provinces)
535                    return dev.Current.Key;
536            }

537            return "";
538        }

539
540        public static string GetWeather(string City)
541        {
542            return "http://news.sohu.com/weather/news2.0/" + GetProvincesKey(Citys.GetEnumerator(), City) + ".html";
543        }

544    }

545}



 

posted @ 2007-05-06 00:47  cdboy  阅读(1030)  评论(0编辑  收藏  举报