找工作神器,提取各大网站有效的招聘信息(前程无忧、智联招聘、猎聘网)

       又到一年的年终了(2014年只剩下最后一个月了),我相信很多园友又在酝酿明年年初换工作的计划了,或许因为年终奖、薪水、工作环境等等诸多原因又将选择跳槽了,這个计划当然也包括我自己,准备明年过完年后跳槽(希望能有个好运气,找个比现在好一点的工作)。换工作避免不了接触最多的还是招聘网站(现在公司招人基本上都是在招聘网上发布招聘信息),现在招聘网站乱七八糟,五花八门,不计其数,个人觉得比较出名的还是前程无忧、智联招聘、猎聘网等等网站,个人求职最关注也是这三个网站。以个人经验而言,如果运气好的话可能半个月的时间就能找到新工作,如果运气不好的可能就是三头几个月都有可能,我身边就有朋友找了半年的。为了有更多的面试机会可能会来回在这几个网站上转,每天都会在这几个网站上转啊转,花费的时间非常多,可能有很多公司都会在这三个网站发布招聘信息,所以就会浏览很多重复公司的信息,或者投递简历时出现重复投递这些公司。现个人利用一点点空余的时间,开发了一个小应用程序,這个程序的作用就是输入一些查询条件(工作地点、薪资范围、关键词等等信息)将这三个网站的所有的关于查询条件的招聘信息全部找出来,这样的避免了来回三个网站跑,浪费时间和精力,最后可能得到的效果还不理想,所以个人就准备做這一款利器来解决這个问题。当你看到表格中显示的信息个人比较感兴趣的话可以双击选中行就可以直接跳转到相应网站,这样就可以非常高效性的投递简历了,不知這个想法会不会得到园友的认同。下面就实现逻辑介绍给大家,望大家多支持和关注。

       找工作神器的主要原理是,根据查询条件去访问相应的网站,通过程序拿到相应网站的HTML代码,再通过相应的正则表达式取相应的信息,再去截取相应的重要信息,再将相应的信息显示在表格里。這里有使用到线程池异步的方式,同时会去三个网站抓取数据,并且会抓取一条解析一条就会在表格里显示出来,这样就避免等待太长时间还看不到结果的尴尬,程序发布后各位园友可以下载程序看看效果如何,还请您能提出宝贵的意见。

       整个程序显示的界面效果图:

       图片上面显示的是查询条件,输入查询条件后点击查询,下面显示的查询出的数据,分别有三个页签(猎聘网、智联招聘和前程无忧),表格分别显示职位名称、公司名称、公司性质、公司规模、月薪/年薪、工作地点、工作经验、最低学历和发布时间等等信息,日后根据需要还可以继续扩充想要看到的信息,实现看到信息的基本上跟网站上的信息差不多

查询条件

 

       解析:现在输入的条件有工作地点、薪水范围(上限、下限),关键词、必须包含的关键词,现在暂时只支持以上几种条件,日后可能会继续加入更多的的查询条件(公司名称、公司性质、工作经验、学历要求等等条件,日后再扩展),使查询更方便。

启动查询的代码如下:

        通过启动线程池异步的方式同时启动三个网站数据的加载,这样增强用户体验的效果,并且会拿到一条数据解析一条数据,并且及时显示在表格了,这样用户不需要等待太长的时间而看不到结果。

        程序启动首先会加载城市对应的ID的一个字典,数据加载如下:

   1 <?xml version="1.0"?>
   2 <SerializableDictionaryOfStringString>
   3   <SerializableDictionary>
   4     <key>
   5       <string>010</string>
   6     </key>
   7     <value>
   8       <string>北京</string>
   9     </value>
  10   </SerializableDictionary>
  11   <SerializableDictionary>
  12     <key>
  13       <string>020</string>
  14     </key>
  15     <value>
  16       <string>上海</string>
  17     </value>
  18   </SerializableDictionary>
  19   <SerializableDictionary>
  20     <key>
  21       <string>030</string>
  22     </key>
  23     <value>
  24       <string>天津</string>
  25     </value>
  26   </SerializableDictionary>
  27   <SerializableDictionary>
  28     <key>
  29       <string>040</string>
  30     </key>
  31     <value>
  32       <string>重庆</string>
  33     </value>
  34   </SerializableDictionary>
  35   <SerializableDictionary>
  36     <key>
  37       <string>050020</string>
  38     </key>
  39     <value>
  40       <string>广州</string>
  41     </value>
  42   </SerializableDictionary>
  43   <SerializableDictionary>
  44     <key>
  45       <string>050090</string>
  46     </key>
  47     <value>
  48       <string>深圳</string>
  49     </value>
  50   </SerializableDictionary>
  51   <SerializableDictionary>
  52     <key>
  53       <string>050030</string>
  54     </key>
  55     <value>
  56       <string>潮州</string>
  57     </value>
  58   </SerializableDictionary>
  59   <SerializableDictionary>
  60     <key>
  61       <string>050040</string>
  62     </key>
  63     <value>
  64       <string>东莞</string>
  65     </value>
  66   </SerializableDictionary>
  67   <SerializableDictionary>
  68     <key>
  69       <string>050050</string>
  70     </key>
  71     <value>
  72       <string>佛山</string>
  73     </value>
  74   </SerializableDictionary>
  75   <SerializableDictionary>
  76     <key>
  77       <string>050060</string>
  78     </key>
  79     <value>
  80       <string>惠州</string>
  81     </value>
  82   </SerializableDictionary>
  83   <SerializableDictionary>
  84     <key>
  85       <string>050070</string>
  86     </key>
  87     <value>
  88       <string>清远</string>
  89     </value>
  90   </SerializableDictionary>
  91   <SerializableDictionary>
  92     <key>
  93       <string>050080</string>
  94     </key>
  95     <value>
  96       <string>汕头</string>
  97     </value>
  98   </SerializableDictionary>
  99   <SerializableDictionary>
 100     <key>
 101       <string>050100</string>
 102     </key>
 103     <value>
 104       <string>顺德</string>
 105     </value>
 106   </SerializableDictionary>
 107   <SerializableDictionary>
 108     <key>
 109       <string>050110</string>
 110     </key>
 111     <value>
 112       <string>湛江</string>
 113     </value>
 114   </SerializableDictionary>
 115   <SerializableDictionary>
 116     <key>
 117       <string>050120</string>
 118     </key>
 119     <value>
 120       <string>肇庆</string>
 121     </value>
 122   </SerializableDictionary>
 123   <SerializableDictionary>
 124     <key>
 125       <string>050130</string>
 126     </key>
 127     <value>
 128       <string>中山</string>
 129     </value>
 130   </SerializableDictionary>
 131   <SerializableDictionary>
 132     <key>
 133       <string>050140</string>
 134     </key>
 135     <value>
 136       <string>珠海</string>
 137     </value>
 138   </SerializableDictionary>
 139   <SerializableDictionary>
 140     <key>
 141       <string>050150</string>
 142     </key>
 143     <value>
 144       <string>江门</string>
 145     </value>
 146   </SerializableDictionary>
 147   <SerializableDictionary>
 148     <key>
 149       <string>050160</string>
 150     </key>
 151     <value>
 152       <string>阳江</string>
 153     </value>
 154   </SerializableDictionary>
 155   <SerializableDictionary>
 156     <key>
 157       <string>050170</string>
 158     </key>
 159     <value>
 160       <string>韶关</string>
 161     </value>
 162   </SerializableDictionary>
 163   <SerializableDictionary>
 164     <key>
 165       <string>050180</string>
 166     </key>
 167     <value>
 168       <string>茂名</string>
 169     </value>
 170   </SerializableDictionary>
 171   <SerializableDictionary>
 172     <key>
 173       <string>050190</string>
 174     </key>
 175     <value>
 176       <string>梅州</string>
 177     </value>
 178   </SerializableDictionary>
 179   <SerializableDictionary>
 180     <key>
 181       <string>050200</string>
 182     </key>
 183     <value>
 184       <string>汕尾</string>
 185     </value>
 186   </SerializableDictionary>
 187   <SerializableDictionary>
 188     <key>
 189       <string>050210</string>
 190     </key>
 191     <value>
 192       <string>河源</string>
 193     </value>
 194   </SerializableDictionary>
 195   <SerializableDictionary>
 196     <key>
 197       <string>050220</string>
 198     </key>
 199     <value>
 200       <string>揭阳</string>
 201     </value>
 202   </SerializableDictionary>
 203   <SerializableDictionary>
 204     <key>
 205       <string>050230</string>
 206     </key>
 207     <value>
 208       <string>云浮</string>
 209     </value>
 210   </SerializableDictionary>
 211   <SerializableDictionary>
 212     <key>
 213       <string>050240</string>
 214     </key>
 215     <value>
 216       <string>开平</string>
 217     </value>
 218   </SerializableDictionary>
 219   <SerializableDictionary>
 220     <key>
 221       <string>050250</string>
 222     </key>
 223     <value>
 224       <string>台山</string>
 225     </value>
 226   </SerializableDictionary>
 227   <SerializableDictionary>
 228     <key>
 229       <string>050260</string>
 230     </key>
 231     <value>
 232       <string>普宁</string>
 233     </value>
 234   </SerializableDictionary>
 235   <SerializableDictionary>
 236     <key>
 237       <string>050270</string>
 238     </key>
 239     <value>
 240       <string>南沙开发区</string>
 241     </value>
 242   </SerializableDictionary>
 243   <SerializableDictionary>
 244     <key>
 245       <string>050280</string>
 246     </key>
 247     <value>
 248       <string>龙川</string>
 249     </value>
 250   </SerializableDictionary>
 251   <SerializableDictionary>
 252     <key>
 253       <string>050290</string>
 254     </key>
 255     <value>
 256       <string>鹤山</string>
 257     </value>
 258   </SerializableDictionary>
 259   <SerializableDictionary>
 260     <key>
 261       <string>060020</string>
 262     </key>
 263     <value>
 264       <string>南京</string>
 265     </value>
 266   </SerializableDictionary>
 267   <SerializableDictionary>
 268     <key>
 269       <string>060030</string>
 270     </key>
 271     <value>
 272       <string>常熟</string>
 273     </value>
 274   </SerializableDictionary>
 275   <SerializableDictionary>
 276     <key>
 277       <string>060040</string>
 278     </key>
 279     <value>
 280       <string>常州</string>
 281     </value>
 282   </SerializableDictionary>
 283   <SerializableDictionary>
 284     <key>
 285       <string>060050</string>
 286     </key>
 287     <value>
 288       <string>昆山</string>
 289     </value>
 290   </SerializableDictionary>
 291   <SerializableDictionary>
 292     <key>
 293       <string>060060</string>
 294     </key>
 295     <value>
 296       <string>连云港</string>
 297     </value>
 298   </SerializableDictionary>
 299   <SerializableDictionary>
 300     <key>
 301       <string>060070</string>
 302     </key>
 303     <value>
 304       <string>南通</string>
 305     </value>
 306   </SerializableDictionary>
 307   <SerializableDictionary>
 308     <key>
 309       <string>060080</string>
 310     </key>
 311     <value>
 312       <string>苏州</string>
 313     </value>
 314   </SerializableDictionary>
 315   <SerializableDictionary>
 316     <key>
 317       <string>060090</string>
 318     </key>
 319     <value>
 320       <string>太仓</string>
 321     </value>
 322   </SerializableDictionary>
 323   <SerializableDictionary>
 324     <key>
 325       <string>060100</string>
 326     </key>
 327     <value>
 328       <string>无锡</string>
 329     </value>
 330   </SerializableDictionary>
 331   <SerializableDictionary>
 332     <key>
 333       <string>060110</string>
 334     </key>
 335     <value>
 336       <string>徐州</string>
 337     </value>
 338   </SerializableDictionary>
 339   <SerializableDictionary>
 340     <key>
 341       <string>060120</string>
 342     </key>
 343     <value>
 344       <string>扬州</string>
 345     </value>
 346   </SerializableDictionary>
 347   <SerializableDictionary>
 348     <key>
 349       <string>060130</string>
 350     </key>
 351     <value>
 352       <string>镇江</string>
 353     </value>
 354   </SerializableDictionary>
 355   <SerializableDictionary>
 356     <key>
 357       <string>060140</string>
 358     </key>
 359     <value>
 360       <string>淮安</string>
 361     </value>
 362   </SerializableDictionary>
 363   <SerializableDictionary>
 364     <key>
 365       <string>060150</string>
 366     </key>
 367     <value>
 368       <string>盐城</string>
 369     </value>
 370   </SerializableDictionary>
 371   <SerializableDictionary>
 372     <key>
 373       <string>060160</string>
 374     </key>
 375     <value>
 376       <string>泰州</string>
 377     </value>
 378   </SerializableDictionary>
 379   <SerializableDictionary>
 380     <key>
 381       <string>060170</string>
 382     </key>
 383     <value>
 384       <string>宿迁</string>
 385     </value>
 386   </SerializableDictionary>
 387   <SerializableDictionary>
 388     <key>
 389       <string>060180</string>
 390     </key>
 391     <value>
 392       <string>张家港</string>
 393     </value>
 394   </SerializableDictionary>
 395   <SerializableDictionary>
 396     <key>
 397       <string>060190</string>
 398     </key>
 399     <value>
 400       <string>江阴</string>
 401     </value>
 402   </SerializableDictionary>
 403   <SerializableDictionary>
 404     <key>
 405       <string>060200</string>
 406     </key>
 407     <value>
 408       <string>丹阳</string>
 409     </value>
 410   </SerializableDictionary>
 411   <SerializableDictionary>
 412     <key>
 413       <string>060210</string>
 414     </key>
 415     <value>
 416       <string>溧阳</string>
 417     </value>
 418   </SerializableDictionary>
 419   <SerializableDictionary>
 420     <key>
 421       <string>060220</string>
 422     </key>
 423     <value>
 424       <string>泰兴</string>
 425     </value>
 426   </SerializableDictionary>
 427   <SerializableDictionary>
 428     <key>
 429       <string>060230</string>
 430     </key>
 431     <value>
 432       <string>宜兴</string>
 433     </value>
 434   </SerializableDictionary>
 435   <SerializableDictionary>
 436     <key>
 437       <string>060240</string>
 438     </key>
 439     <value>
 440       <string>靖江</string>
 441     </value>
 442   </SerializableDictionary>
 443   <SerializableDictionary>
 444     <key>
 445       <string>060250</string>
 446     </key>
 447     <value>
 448       <string>句容</string>
 449     </value>
 450   </SerializableDictionary>
 451   <SerializableDictionary>
 452     <key>
 453       <string>060260</string>
 454     </key>
 455     <value>
 456       <string>如皋</string>
 457     </value>
 458   </SerializableDictionary>
 459   <SerializableDictionary>
 460     <key>
 461       <string>060270</string>
 462     </key>
 463     <value>
 464       <string>扬中</string>
 465     </value>
 466   </SerializableDictionary>
 467   <SerializableDictionary>
 468     <key>
 469       <string>060280</string>
 470     </key>
 471     <value>
 472       <string>高邮</string>
 473     </value>
 474   </SerializableDictionary>
 475   <SerializableDictionary>
 476     <key>
 477       <string>060290</string>
 478     </key>
 479     <value>
 480       <string>启东</string>
 481     </value>
 482   </SerializableDictionary>
 483   <SerializableDictionary>
 484     <key>
 485       <string>060300</string>
 486     </key>
 487     <value>
 488       <string>盱眙</string>
 489     </value>
 490   </SerializableDictionary>
 491   <SerializableDictionary>
 492     <key>
 493       <string>060310</string>
 494     </key>
 495     <value>
 496       <string>通州</string>
 497     </value>
 498   </SerializableDictionary>
 499   <SerializableDictionary>
 500     <key>
 501       <string>060320</string>
 502     </key>
 503     <value>
 504       <string>金湖</string>
 505     </value>
 506   </SerializableDictionary>
 507   <SerializableDictionary>
 508     <key>
 509       <string>070020</string>
 510     </key>
 511     <value>
 512       <string>杭州</string>
 513     </value>
 514   </SerializableDictionary>
 515   <SerializableDictionary>
 516     <key>
 517       <string>070030</string>
 518     </key>
 519     <value>
 520       <string>宁波</string>
 521     </value>
 522   </SerializableDictionary>
 523   <SerializableDictionary>
 524     <key>
 525       <string>070040</string>
 526     </key>
 527     <value>
 528       <string>温州</string>
 529     </value>
 530   </SerializableDictionary>
 531   <SerializableDictionary>
 532     <key>
 533       <string>070050</string>
 534     </key>
 535     <value>
 536       <string>绍兴</string>
 537     </value>
 538   </SerializableDictionary>
 539   <SerializableDictionary>
 540     <key>
 541       <string>070060</string>
 542     </key>
 543     <value>
 544       <string>金华</string>
 545     </value>
 546   </SerializableDictionary>
 547   <SerializableDictionary>
 548     <key>
 549       <string>070070</string>
 550     </key>
 551     <value>
 552       <string>台州</string>
 553     </value>
 554   </SerializableDictionary>
 555   <SerializableDictionary>
 556     <key>
 557       <string>070080</string>
 558     </key>
 559     <value>
 560       <string>湖州</string>
 561     </value>
 562   </SerializableDictionary>
 563   <SerializableDictionary>
 564     <key>
 565       <string>070090</string>
 566     </key>
 567     <value>
 568       <string>嘉兴</string>
 569     </value>
 570   </SerializableDictionary>
 571   <SerializableDictionary>
 572     <key>
 573       <string>070100</string>
 574     </key>
 575     <value>
 576       <string>衢州</string>
 577     </value>
 578   </SerializableDictionary>
 579   <SerializableDictionary>
 580     <key>
 581       <string>070110</string>
 582     </key>
 583     <value>
 584       <string>丽水</string>
 585     </value>
 586   </SerializableDictionary>
 587   <SerializableDictionary>
 588     <key>
 589       <string>070120</string>
 590     </key>
 591     <value>
 592       <string>舟山</string>
 593     </value>
 594   </SerializableDictionary>
 595   <SerializableDictionary>
 596     <key>
 597       <string>070130</string>
 598     </key>
 599     <value>
 600       <string>义乌</string>
 601     </value>
 602   </SerializableDictionary>
 603   <SerializableDictionary>
 604     <key>
 605       <string>070140</string>
 606     </key>
 607     <value>
 608       <string>海宁</string>
 609     </value>
 610   </SerializableDictionary>
 611   <SerializableDictionary>
 612     <key>
 613       <string>070150</string>
 614     </key>
 615     <value>
 616       <string>玉环县</string>
 617     </value>
 618   </SerializableDictionary>
 619   <SerializableDictionary>
 620     <key>
 621       <string>070160</string>
 622     </key>
 623     <value>
 624       <string>平湖</string>
 625     </value>
 626   </SerializableDictionary>
 627   <SerializableDictionary>
 628     <key>
 629       <string>070170</string>
 630     </key>
 631     <value>
 632       <string>永康</string>
 633     </value>
 634   </SerializableDictionary>
 635   <SerializableDictionary>
 636     <key>
 637       <string>070180</string>
 638     </key>
 639     <value>
 640       <string>东阳</string>
 641     </value>
 642   </SerializableDictionary>
 643   <SerializableDictionary>
 644     <key>
 645       <string>070190</string>
 646     </key>
 647     <value>
 648       <string>嘉善</string>
 649     </value>
 650   </SerializableDictionary>
 651   <SerializableDictionary>
 652     <key>
 653       <string>070200</string>
 654     </key>
 655     <value>
 656       <string>余姚</string>
 657     </value>
 658   </SerializableDictionary>
 659   <SerializableDictionary>
 660     <key>
 661       <string>070210</string>
 662     </key>
 663     <value>
 664       <string>慈溪</string>
 665     </value>
 666   </SerializableDictionary>
 667   <SerializableDictionary>
 668     <key>
 669       <string>070220</string>
 670     </key>
 671     <value>
 672       <string>乐清</string>
 673     </value>
 674   </SerializableDictionary>
 675   <SerializableDictionary>
 676     <key>
 677       <string>070230</string>
 678     </key>
 679     <value>
 680       <string>永嘉</string>
 681     </value>
 682   </SerializableDictionary>
 683   <SerializableDictionary>
 684     <key>
 685       <string>070240</string>
 686     </key>
 687     <value>
 688       <string>桐乡</string>
 689     </value>
 690   </SerializableDictionary>
 691   <SerializableDictionary>
 692     <key>
 693       <string>070250</string>
 694     </key>
 695     <value>
 696       <string>瑞安</string>
 697     </value>
 698   </SerializableDictionary>
 699   <SerializableDictionary>
 700     <key>
 701       <string>070260</string>
 702     </key>
 703     <value>
 704       <string>温岭</string>
 705     </value>
 706   </SerializableDictionary>
 707   <SerializableDictionary>
 708     <key>
 709       <string>070270</string>
 710     </key>
 711     <value>
 712       <string>上虞</string>
 713     </value>
 714   </SerializableDictionary>
 715   <SerializableDictionary>
 716     <key>
 717       <string>070280</string>
 718     </key>
 719     <value>
 720       <string>诸暨</string>
 721     </value>
 722   </SerializableDictionary>
 723   <SerializableDictionary>
 724     <key>
 725       <string>070290</string>
 726     </key>
 727     <value>
 728       <string>宁海</string>
 729     </value>
 730   </SerializableDictionary>
 731   <SerializableDictionary>
 732     <key>
 733       <string>070300</string>
 734     </key>
 735     <value>
 736       <string>三门</string>
 737     </value>
 738   </SerializableDictionary>
 739   <SerializableDictionary>
 740     <key>
 741       <string>070310</string>
 742     </key>
 743     <value>
 744       <string>德清</string>
 745     </value>
 746   </SerializableDictionary>
 747   <SerializableDictionary>
 748     <key>
 749       <string>070320</string>
 750     </key>
 751     <value>
 752       <string>象山</string>
 753     </value>
 754   </SerializableDictionary>
 755   <SerializableDictionary>
 756     <key>
 757       <string>070330</string>
 758     </key>
 759     <value>
 760       <string>方家山</string>
 761     </value>
 762   </SerializableDictionary>
 763   <SerializableDictionary>
 764     <key>
 765       <string>070340</string>
 766     </key>
 767     <value>
 768       <string>龙泉</string>
 769     </value>
 770   </SerializableDictionary>
 771   <SerializableDictionary>
 772     <key>
 773       <string>080020</string>
 774     </key>
 775     <value>
 776       <string>合肥</string>
 777     </value>
 778   </SerializableDictionary>
 779   <SerializableDictionary>
 780     <key>
 781       <string>080030</string>
 782     </key>
 783     <value>
 784       <string>安庆</string>
 785     </value>
 786   </SerializableDictionary>
 787   <SerializableDictionary>
 788     <key>
 789       <string>080040</string>
 790     </key>
 791     <value>
 792       <string>蚌埠</string>
 793     </value>
 794   </SerializableDictionary>
 795   <SerializableDictionary>
 796     <key>
 797       <string>080050</string>
 798     </key>
 799     <value>
 800       <string>芜湖</string>
 801     </value>
 802   </SerializableDictionary>
 803   <SerializableDictionary>
 804     <key>
 805       <string>080060</string>
 806     </key>
 807     <value>
 808       <string>淮南</string>
 809     </value>
 810   </SerializableDictionary>
 811   <SerializableDictionary>
 812     <key>
 813       <string>080070</string>
 814     </key>
 815     <value>
 816       <string>马鞍山</string>
 817     </value>
 818   </SerializableDictionary>
 819   <SerializableDictionary>
 820     <key>
 821       <string>080080</string>
 822     </key>
 823     <value>
 824       <string>淮北</string>
 825     </value>
 826   </SerializableDictionary>
 827   <SerializableDictionary>
 828     <key>
 829       <string>080090</string>
 830     </key>
 831     <value>
 832       <string>铜陵</string>
 833     </value>
 834   </SerializableDictionary>
 835   <SerializableDictionary>
 836     <key>
 837       <string>080100</string>
 838     </key>
 839     <value>
 840       <string>黄山</string>
 841     </value>
 842   </SerializableDictionary>
 843   <SerializableDictionary>
 844     <key>
 845       <string>080110</string>
 846     </key>
 847     <value>
 848       <string>滁州</string>
 849     </value>
 850   </SerializableDictionary>
 851   <SerializableDictionary>
 852     <key>
 853       <string>080120</string>
 854     </key>
 855     <value>
 856       <string>阜阳</string>
 857     </value>
 858   </SerializableDictionary>
 859   <SerializableDictionary>
 860     <key>
 861       <string>080130</string>
 862     </key>
 863     <value>
 864       <string>宿州</string>
 865     </value>
 866   </SerializableDictionary>
 867   <SerializableDictionary>
 868     <key>
 869       <string>080140</string>
 870     </key>
 871     <value>
 872       <string>六安</string>
 873     </value>
 874   </SerializableDictionary>
 875   <SerializableDictionary>
 876     <key>
 877       <string>080150</string>
 878     </key>
 879     <value>
 880       <string>亳州</string>
 881     </value>
 882   </SerializableDictionary>
 883   <SerializableDictionary>
 884     <key>
 885       <string>080160</string>
 886     </key>
 887     <value>
 888       <string>池州</string>
 889     </value>
 890   </SerializableDictionary>
 891   <SerializableDictionary>
 892     <key>
 893       <string>080170</string>
 894     </key>
 895     <value>
 896       <string>宣城</string>
 897     </value>
 898   </SerializableDictionary>
 899   <SerializableDictionary>
 900     <key>
 901       <string>080180</string>
 902     </key>
 903     <value>
 904       <string>巢湖</string>
 905     </value>
 906   </SerializableDictionary>
 907   <SerializableDictionary>
 908     <key>
 909       <string>080190</string>
 910     </key>
 911     <value>
 912       <string>凤阳</string>
 913     </value>
 914   </SerializableDictionary>
 915   <SerializableDictionary>
 916     <key>
 917       <string>080200</string>
 918     </key>
 919     <value>
 920       <string>广德</string>
 921     </value>
 922   </SerializableDictionary>
 923   <SerializableDictionary>
 924     <key>
 925       <string>080210</string>
 926     </key>
 927     <value>
 928       <string>宿松</string>
 929     </value>
 930   </SerializableDictionary>
 931   <SerializableDictionary>
 932     <key>
 933       <string>090020</string>
 934     </key>
 935     <value>
 936       <string>福州</string>
 937     </value>
 938   </SerializableDictionary>
 939   <SerializableDictionary>
 940     <key>
 941       <string>090030</string>
 942     </key>
 943     <value>
 944       <string>泉州</string>
 945     </value>
 946   </SerializableDictionary>
 947   <SerializableDictionary>
 948     <key>
 949       <string>090040</string>
 950     </key>
 951     <value>
 952       <string>厦门</string>
 953     </value>
 954   </SerializableDictionary>
 955   <SerializableDictionary>
 956     <key>
 957       <string>090050</string>
 958     </key>
 959     <value>
 960       <string>漳州</string>
 961     </value>
 962   </SerializableDictionary>
 963   <SerializableDictionary>
 964     <key>
 965       <string>090060</string>
 966     </key>
 967     <value>
 968       <string>莆田</string>
 969     </value>
 970   </SerializableDictionary>
 971   <SerializableDictionary>
 972     <key>
 973       <string>090070</string>
 974     </key>
 975     <value>
 976       <string>三明</string>
 977     </value>
 978   </SerializableDictionary>
 979   <SerializableDictionary>
 980     <key>
 981       <string>090080</string>
 982     </key>
 983     <value>
 984       <string>南平</string>
 985     </value>
 986   </SerializableDictionary>
 987   <SerializableDictionary>
 988     <key>
 989       <string>090090</string>
 990     </key>
 991     <value>
 992       <string>龙岩</string>
 993     </value>
 994   </SerializableDictionary>
 995   <SerializableDictionary>
 996     <key>
 997       <string>090100</string>
 998     </key>
 999     <value>
1000       <string>宁德</string>
1001     </value>
1002   </SerializableDictionary>
1003   <SerializableDictionary>
1004     <key>
1005       <string>090110</string>
1006     </key>
1007     <value>
1008       <string>泉港区</string>
1009     </value>
1010   </SerializableDictionary>
1011   <SerializableDictionary>
1012     <key>
1013       <string>090120</string>
1014     </key>
1015     <value>
1016       <string>福安</string>
1017     </value>
1018   </SerializableDictionary>
1019   <SerializableDictionary>
1020     <key>
1021       <string>090130</string>
1022     </key>
1023     <value>
1024       <string>晋江</string>
1025     </value>
1026   </SerializableDictionary>
1027   <SerializableDictionary>
1028     <key>
1029       <string>100020</string>
1030     </key>
1031     <value>
1032       <string>兰州</string>
1033     </value>
1034   </SerializableDictionary>
1035   <SerializableDictionary>
1036     <key>
1037       <string>100030</string>
1038     </key>
1039     <value>
1040       <string>嘉峪关</string>
1041     </value>
1042   </SerializableDictionary>
1043   <SerializableDictionary>
1044     <key>
1045       <string>100040</string>
1046     </key>
1047     <value>
1048       <string>酒泉</string>
1049     </value>
1050   </SerializableDictionary>
1051   <SerializableDictionary>
1052     <key>
1053       <string>100050</string>
1054     </key>
1055     <value>
1056       <string>金昌</string>
1057     </value>
1058   </SerializableDictionary>
1059   <SerializableDictionary>
1060     <key>
1061       <string>100060</string>
1062     </key>
1063     <value>
1064       <string>白银</string>
1065     </value>
1066   </SerializableDictionary>
1067   <SerializableDictionary>
1068     <key>
1069       <string>100070</string>
1070     </key>
1071     <value>
1072       <string>天水</string>
1073     </value>
1074   </SerializableDictionary>
1075   <SerializableDictionary>
1076     <key>
1077       <string>100080</string>
1078     </key>
1079     <value>
1080       <string>张掖</string>
1081     </value>
1082   </SerializableDictionary>
1083   <SerializableDictionary>
1084     <key>
1085       <string>100090</string>
1086     </key>
1087     <value>
1088       <string>武威</string>
1089     </value>
1090   </SerializableDictionary>
1091   <SerializableDictionary>
1092     <key>
1093       <string>100100</string>
1094     </key>
1095     <value>
1096       <string>定西</string>
1097     </value>
1098   </SerializableDictionary>
1099   <SerializableDictionary>
1100     <key>
1101       <string>100110</string>
1102     </key>
1103     <value>
1104       <string>陇南</string>
1105     </value>
1106   </SerializableDictionary>
1107   <SerializableDictionary>
1108     <key>
1109       <string>100120</string>
1110     </key>
1111     <value>
1112       <string>平凉</string>
1113     </value>
1114   </SerializableDictionary>
1115   <SerializableDictionary>
1116     <key>
1117       <string>100130</string>
1118     </key>
1119     <value>
1120       <string>庆阳</string>
1121     </value>
1122   </SerializableDictionary>
1123   <SerializableDictionary>
1124     <key>
1125       <string>100140</string>
1126     </key>
1127     <value>
1128       <string>临夏回族自治州</string>
1129     </value>
1130   </SerializableDictionary>
1131   <SerializableDictionary>
1132     <key>
1133       <string>100150</string>
1134     </key>
1135     <value>
1136       <string>甘南藏族自治州</string>
1137     </value>
1138   </SerializableDictionary>
1139   <SerializableDictionary>
1140     <key>
1141       <string>110020</string>
1142     </key>
1143     <value>
1144       <string>南宁</string>
1145     </value>
1146   </SerializableDictionary>
1147   <SerializableDictionary>
1148     <key>
1149       <string>110030</string>
1150     </key>
1151     <value>
1152       <string>北海</string>
1153     </value>
1154   </SerializableDictionary>
1155   <SerializableDictionary>
1156     <key>
1157       <string>110040</string>
1158     </key>
1159     <value>
1160       <string>桂林</string>
1161     </value>
1162   </SerializableDictionary>
1163   <SerializableDictionary>
1164     <key>
1165       <string>110050</string>
1166     </key>
1167     <value>
1168       <string>柳州</string>
1169     </value>
1170   </SerializableDictionary>
1171   <SerializableDictionary>
1172     <key>
1173       <string>110060</string>
1174     </key>
1175     <value>
1176       <string>玉林</string>
1177     </value>
1178   </SerializableDictionary>
1179   <SerializableDictionary>
1180     <key>
1181       <string>110070</string>
1182     </key>
1183     <value>
1184       <string>梧州</string>
1185     </value>
1186   </SerializableDictionary>
1187   <SerializableDictionary>
1188     <key>
1189       <string>110080</string>
1190     </key>
1191     <value>
1192       <string>崇左</string>
1193     </value>
1194   </SerializableDictionary>
1195   <SerializableDictionary>
1196     <key>
1197       <string>110090</string>
1198     </key>
1199     <value>
1200       <string>来宾</string>
1201     </value>
1202   </SerializableDictionary>
1203   <SerializableDictionary>
1204     <key>
1205       <string>110100</string>
1206     </key>
1207     <value>
1208       <string>防城港</string>
1209     </value>
1210   </SerializableDictionary>
1211   <SerializableDictionary>
1212     <key>
1213       <string>110110</string>
1214     </key>
1215     <value>
1216       <string>百色</string>
1217     </value>
1218   </SerializableDictionary>
1219   <SerializableDictionary>
1220     <key>
1221       <string>110120</string>
1222     </key>
1223     <value>
1224       <string>钦州</string>
1225     </value>
1226   </SerializableDictionary>
1227   <SerializableDictionary>
1228     <key>
1229       <string>110130</string>
1230     </key>
1231     <value>
1232       <string>贺州</string>
1233     </value>
1234   </SerializableDictionary>
1235   <SerializableDictionary>
1236     <key>
1237       <string>110140</string>
1238     </key>
1239     <value>
1240       <string>河池</string>
1241     </value>
1242   </SerializableDictionary>
1243   <SerializableDictionary>
1244     <key>
1245       <string>110150</string>
1246     </key>
1247     <value>
1248       <string>贵港</string>
1249     </value>
1250   </SerializableDictionary>
1251   <SerializableDictionary>
1252     <key>
1253       <string>120020</string>
1254     </key>
1255     <value>
1256       <string>贵阳</string>
1257     </value>
1258   </SerializableDictionary>
1259   <SerializableDictionary>
1260     <key>
1261       <string>120030</string>
1262     </key>
1263     <value>
1264       <string>遵义</string>
1265     </value>
1266   </SerializableDictionary>
1267   <SerializableDictionary>
1268     <key>
1269       <string>120040</string>
1270     </key>
1271     <value>
1272       <string>六盘水</string>
1273     </value>
1274   </SerializableDictionary>
1275   <SerializableDictionary>
1276     <key>
1277       <string>120050</string>
1278     </key>
1279     <value>
1280       <string>安顺</string>
1281     </value>
1282   </SerializableDictionary>
1283   <SerializableDictionary>
1284     <key>
1285       <string>120060</string>
1286     </key>
1287     <value>
1288       <string>毕节</string>
1289     </value>
1290   </SerializableDictionary>
1291   <SerializableDictionary>
1292     <key>
1293       <string>120070</string>
1294     </key>
1295     <value>
1296       <string>铜仁</string>
1297     </value>
1298   </SerializableDictionary>
1299   <SerializableDictionary>
1300     <key>
1301       <string>120080</string>
1302     </key>
1303     <value>
1304       <string>黔西南布依苗族自治州</string>
1305     </value>
1306   </SerializableDictionary>
1307   <SerializableDictionary>
1308     <key>
1309       <string>120090</string>
1310     </key>
1311     <value>
1312       <string>黔东南苗族侗族自治州</string>
1313     </value>
1314   </SerializableDictionary>
1315   <SerializableDictionary>
1316     <key>
1317       <string>120100</string>
1318     </key>
1319     <value>
1320       <string>黔南布依苗族自治州</string>
1321     </value>
1322   </SerializableDictionary>
1323   <SerializableDictionary>
1324     <key>
1325       <string>130020</string>
1326     </key>
1327     <value>
1328       <string>海口</string>
1329     </value>
1330   </SerializableDictionary>
1331   <SerializableDictionary>
1332     <key>
1333       <string>130030</string>
1334     </key>
1335     <value>
1336       <string>三亚</string>
1337     </value>
1338   </SerializableDictionary>
1339   <SerializableDictionary>
1340     <key>
1341       <string>130040</string>
1342     </key>
1343     <value>
1344       <string>三沙</string>
1345     </value>
1346   </SerializableDictionary>
1347   <SerializableDictionary>
1348     <key>
1349       <string>130060</string>
1350     </key>
1351     <value>
1352       <string>文昌</string>
1353     </value>
1354   </SerializableDictionary>
1355   <SerializableDictionary>
1356     <key>
1357       <string>130070</string>
1358     </key>
1359     <value>
1360       <string>琼海</string>
1361     </value>
1362   </SerializableDictionary>
1363   <SerializableDictionary>
1364     <key>
1365       <string>130080</string>
1366     </key>
1367     <value>
1368       <string>万宁</string>
1369     </value>
1370   </SerializableDictionary>
1371   <SerializableDictionary>
1372     <key>
1373       <string>130090</string>
1374     </key>
1375     <value>
1376       <string>儋州</string>
1377     </value>
1378   </SerializableDictionary>
1379   <SerializableDictionary>
1380     <key>
1381       <string>130100</string>
1382     </key>
1383     <value>
1384       <string>东方</string>
1385     </value>
1386   </SerializableDictionary>
1387   <SerializableDictionary>
1388     <key>
1389       <string>130110</string>
1390     </key>
1391     <value>
1392       <string>五指山</string>
1393     </value>
1394   </SerializableDictionary>
1395   <SerializableDictionary>
1396     <key>
1397       <string>130120</string>
1398     </key>
1399     <value>
1400       <string>定安</string>
1401     </value>
1402   </SerializableDictionary>
1403   <SerializableDictionary>
1404     <key>
1405       <string>130130</string>
1406     </key>
1407     <value>
1408       <string>屯昌</string>
1409     </value>
1410   </SerializableDictionary>
1411   <SerializableDictionary>
1412     <key>
1413       <string>130140</string>
1414     </key>
1415     <value>
1416       <string>澄迈</string>
1417     </value>
1418   </SerializableDictionary>
1419   <SerializableDictionary>
1420     <key>
1421       <string>130150</string>
1422     </key>
1423     <value>
1424       <string>临高</string>
1425     </value>
1426   </SerializableDictionary>
1427   <SerializableDictionary>
1428     <key>
1429       <string>130160</string>
1430     </key>
1431     <value>
1432       <string>琼中黎族苗族自治县</string>
1433     </value>
1434   </SerializableDictionary>
1435   <SerializableDictionary>
1436     <key>
1437       <string>130170</string>
1438     </key>
1439     <value>
1440       <string>保亭黎族苗族自治县</string>
1441     </value>
1442   </SerializableDictionary>
1443   <SerializableDictionary>
1444     <key>
1445       <string>130180</string>
1446     </key>
1447     <value>
1448       <string>白沙黎族自治县</string>
1449     </value>
1450   </SerializableDictionary>
1451   <SerializableDictionary>
1452     <key>
1453       <string>130190</string>
1454     </key>
1455     <value>
1456       <string>昌江黎族自治县</string>
1457     </value>
1458   </SerializableDictionary>
1459   <SerializableDictionary>
1460     <key>
1461       <string>130200</string>
1462     </key>
1463     <value>
1464       <string>乐东黎族自治县</string>
1465     </value>
1466   </SerializableDictionary>
1467   <SerializableDictionary>
1468     <key>
1469       <string>130210</string>
1470     </key>
1471     <value>
1472       <string>陵水黎族自治县</string>
1473     </value>
1474   </SerializableDictionary>
1475   <SerializableDictionary>
1476     <key>
1477       <string>140020</string>
1478     </key>
1479     <value>
1480       <string>石家庄</string>
1481     </value>
1482   </SerializableDictionary>
1483   <SerializableDictionary>
1484     <key>
1485       <string>140030</string>
1486     </key>
1487     <value>
1488       <string>保定</string>
1489     </value>
1490   </SerializableDictionary>
1491   <SerializableDictionary>
1492     <key>
1493       <string>140040</string>
1494     </key>
1495     <value>
1496       <string>承德</string>
1497     </value>
1498   </SerializableDictionary>
1499   <SerializableDictionary>
1500     <key>
1501       <string>140050</string>
1502     </key>
1503     <value>
1504       <string>邯郸</string>
1505     </value>
1506   </SerializableDictionary>
1507   <SerializableDictionary>
1508     <key>
1509       <string>140060</string>
1510     </key>
1511     <value>
1512       <string>廊坊</string>
1513     </value>
1514   </SerializableDictionary>
1515   <SerializableDictionary>
1516     <key>
1517       <string>140070</string>
1518     </key>
1519     <value>
1520       <string>秦皇岛</string>
1521     </value>
1522   </SerializableDictionary>
1523   <SerializableDictionary>
1524     <key>
1525       <string>140080</string>
1526     </key>
1527     <value>
1528       <string>唐山</string>
1529     </value>
1530   </SerializableDictionary>
1531   <SerializableDictionary>
1532     <key>
1533       <string>140090</string>
1534     </key>
1535     <value>
1536       <string>张家口</string>
1537     </value>
1538   </SerializableDictionary>
1539   <SerializableDictionary>
1540     <key>
1541       <string>140100</string>
1542     </key>
1543     <value>
1544       <string>邢台</string>
1545     </value>
1546   </SerializableDictionary>
1547   <SerializableDictionary>
1548     <key>
1549       <string>140110</string>
1550     </key>
1551     <value>
1552       <string>沧州</string>
1553     </value>
1554   </SerializableDictionary>
1555   <SerializableDictionary>
1556     <key>
1557       <string>140120</string>
1558     </key>
1559     <value>
1560       <string>衡水</string>
1561     </value>
1562   </SerializableDictionary>
1563   <SerializableDictionary>
1564     <key>
1565       <string>140130</string>
1566     </key>
1567     <value>
1568       <string>燕郊开发区</string>
1569     </value>
1570   </SerializableDictionary>
1571   <SerializableDictionary>
1572     <key>
1573       <string>140140</string>
1574     </key>
1575     <value>
1576       <string>固安</string>
1577     </value>
1578   </SerializableDictionary>
1579   <SerializableDictionary>
1580     <key>
1581       <string>140150</string>
1582     </key>
1583     <value>
1584       <string>遵化</string>
1585     </value>
1586   </SerializableDictionary>
1587   <SerializableDictionary>
1588     <key>
1589       <string>140160</string>
1590     </key>
1591     <value>
1592       <string>香河</string>
1593     </value>
1594   </SerializableDictionary>
1595   <SerializableDictionary>
1596     <key>
1597       <string>140170</string>
1598     </key>
1599     <value>
1600       <string>三河</string>
1601     </value>
1602   </SerializableDictionary>
1603   <SerializableDictionary>
1604     <key>
1605       <string>150020</string>
1606     </key>
1607     <value>
1608       <string>郑州</string>
1609     </value>
1610   </SerializableDictionary>
1611   <SerializableDictionary>
1612     <key>
1613       <string>150030</string>
1614     </key>
1615     <value>
1616       <string>开封</string>
1617     </value>
1618   </SerializableDictionary>
1619   <SerializableDictionary>
1620     <key>
1621       <string>150040</string>
1622     </key>
1623     <value>
1624       <string>洛阳</string>
1625     </value>
1626   </SerializableDictionary>
1627   <SerializableDictionary>
1628     <key>
1629       <string>150050</string>
1630     </key>
1631     <value>
1632       <string>商丘</string>
1633     </value>
1634   </SerializableDictionary>
1635   <SerializableDictionary>
1636     <key>
1637       <string>150060</string>
1638     </key>
1639     <value>
1640       <string>安阳</string>
1641     </value>
1642   </SerializableDictionary>
1643   <SerializableDictionary>
1644     <key>
1645       <string>150070</string>
1646     </key>
1647     <value>
1648       <string>平顶山</string>
1649     </value>
1650   </SerializableDictionary>
1651   <SerializableDictionary>
1652     <key>
1653       <string>150080</string>
1654     </key>
1655     <value>
1656       <string>新乡</string>
1657     </value>
1658   </SerializableDictionary>
1659   <SerializableDictionary>
1660     <key>
1661       <string>150090</string>
1662     </key>
1663     <value>
1664       <string>焦作</string>
1665     </value>
1666   </SerializableDictionary>
1667   <SerializableDictionary>
1668     <key>
1669       <string>150100</string>
1670     </key>
1671     <value>
1672       <string>濮阳</string>
1673     </value>
1674   </SerializableDictionary>
1675   <SerializableDictionary>
1676     <key>
1677       <string>150110</string>
1678     </key>
1679     <value>
1680       <string>许昌</string>
1681     </value>
1682   </SerializableDictionary>
1683   <SerializableDictionary>
1684     <key>
1685       <string>150120</string>
1686     </key>
1687     <value>
1688       <string>漯河</string>
1689     </value>
1690   </SerializableDictionary>
1691   <SerializableDictionary>
1692     <key>
1693       <string>150130</string>
1694     </key>
1695     <value>
1696       <string>三门峡</string>
1697     </value>
1698   </SerializableDictionary>
1699   <SerializableDictionary>
1700     <key>
1701       <string>150140</string>
1702     </key>
1703     <value>
1704       <string>鹤壁</string>
1705     </value>
1706   </SerializableDictionary>
1707   <SerializableDictionary>
1708     <key>
1709       <string>150150</string>
1710     </key>
1711     <value>
1712       <string>周口</string>
1713     </value>
1714   </SerializableDictionary>
1715   <SerializableDictionary>
1716     <key>
1717       <string>150160</string>
1718     </key>
1719     <value>
1720       <string>驻马店</string>
1721     </value>
1722   </SerializableDictionary>
1723   <SerializableDictionary>
1724     <key>
1725       <string>150170</string>
1726     </key>
1727     <value>
1728       <string>南阳</string>
1729     </value>
1730   </SerializableDictionary>
1731   <SerializableDictionary>
1732     <key>
1733       <string>150180</string>
1734     </key>
1735     <value>
1736       <string>信阳</string>
1737     </value>
1738   </SerializableDictionary>
1739   <SerializableDictionary>
1740     <key>
1741       <string>150190</string>
1742     </key>
1743     <value>
1744       <string>济源</string>
1745     </value>
1746   </SerializableDictionary>
1747   <SerializableDictionary>
1748     <key>
1749       <string>150200</string>
1750     </key>
1751     <value>
1752       <string>西平</string>
1753     </value>
1754   </SerializableDictionary>
1755   <SerializableDictionary>
1756     <key>
1757       <string>150210</string>
1758     </key>
1759     <value>
1760       <string>长葛</string>
1761     </value>
1762   </SerializableDictionary>
1763   <SerializableDictionary>
1764     <key>
1765       <string>160020</string>
1766     </key>
1767     <value>
1768       <string>哈尔滨</string>
1769     </value>
1770   </SerializableDictionary>
1771   <SerializableDictionary>
1772     <key>
1773       <string>160030</string>
1774     </key>
1775     <value>
1776       <string>大庆</string>
1777     </value>
1778   </SerializableDictionary>
1779   <SerializableDictionary>
1780     <key>
1781       <string>160040</string>
1782     </key>
1783     <value>
1784       <string>佳木斯</string>
1785     </value>
1786   </SerializableDictionary>
1787   <SerializableDictionary>
1788     <key>
1789       <string>160050</string>
1790     </key>
1791     <value>
1792       <string>牡丹江</string>
1793     </value>
1794   </SerializableDictionary>
1795   <SerializableDictionary>
1796     <key>
1797       <string>160060</string>
1798     </key>
1799     <value>
1800       <string>齐齐哈尔</string>
1801     </value>
1802   </SerializableDictionary>
1803   <SerializableDictionary>
1804     <key>
1805       <string>160070</string>
1806     </key>
1807     <value>
1808       <string>鸡西</string>
1809     </value>
1810   </SerializableDictionary>
1811   <SerializableDictionary>
1812     <key>
1813       <string>160080</string>
1814     </key>
1815     <value>
1816       <string>鹤岗</string>
1817     </value>
1818   </SerializableDictionary>
1819   <SerializableDictionary>
1820     <key>
1821       <string>160090</string>
1822     </key>
1823     <value>
1824       <string>双鸭山</string>
1825     </value>
1826   </SerializableDictionary>
1827   <SerializableDictionary>
1828     <key>
1829       <string>160100</string>
1830     </key>
1831     <value>
1832       <string>伊春</string>
1833     </value>
1834   </SerializableDictionary>
1835   <SerializableDictionary>
1836     <key>
1837       <string>160110</string>
1838     </key>
1839     <value>
1840       <string>七台河</string>
1841     </value>
1842   </SerializableDictionary>
1843   <SerializableDictionary>
1844     <key>
1845       <string>160120</string>
1846     </key>
1847     <value>
1848       <string>黑河</string>
1849     </value>
1850   </SerializableDictionary>
1851   <SerializableDictionary>
1852     <key>
1853       <string>160130</string>
1854     </key>
1855     <value>
1856       <string>绥化</string>
1857     </value>
1858   </SerializableDictionary>
1859   <SerializableDictionary>
1860     <key>
1861       <string>160140</string>
1862     </key>
1863     <value>
1864       <string>大兴安岭</string>
1865     </value>
1866   </SerializableDictionary>
1867   <SerializableDictionary>
1868     <key>
1869       <string>160150</string>
1870     </key>
1871     <value>
1872       <string>安达</string>
1873     </value>
1874   </SerializableDictionary>
1875   <SerializableDictionary>
1876     <key>
1877       <string>160160</string>
1878     </key>
1879     <value>
1880       <string>双城</string>
1881     </value>
1882   </SerializableDictionary>
1883   <SerializableDictionary>
1884     <key>
1885       <string>160170</string>
1886     </key>
1887     <value>
1888       <string>尚志</string>
1889     </value>
1890   </SerializableDictionary>
1891   <SerializableDictionary>
1892     <key>
1893       <string>160180</string>
1894     </key>
1895     <value>
1896       <string>绥芬河</string>
1897     </value>
1898   </SerializableDictionary>
1899   <SerializableDictionary>
1900     <key>
1901       <string>160190</string>
1902     </key>
1903     <value>
1904       <string>肇东</string>
1905     </value>
1906   </SerializableDictionary>
1907   <SerializableDictionary>
1908     <key>
1909       <string>170020</string>
1910     </key>
1911     <value>
1912       <string>武汉</string>
1913     </value>
1914   </SerializableDictionary>
1915   <SerializableDictionary>
1916     <key>
1917       <string>170030</string>
1918     </key>
1919     <value>
1920       <string>十堰</string>
1921     </value>
1922   </SerializableDictionary>
1923   <SerializableDictionary>
1924     <key>
1925       <string>170040</string>
1926     </key>
1927     <value>
1928       <string>襄阳</string>
1929     </value>
1930   </SerializableDictionary>
1931   <SerializableDictionary>
1932     <key>
1933       <string>170050</string>
1934     </key>
1935     <value>
1936       <string>宜昌</string>
1937     </value>
1938   </SerializableDictionary>
1939   <SerializableDictionary>
1940     <key>
1941       <string>170060</string>
1942     </key>
1943     <value>
1944       <string>潜江</string>
1945     </value>
1946   </SerializableDictionary>
1947   <SerializableDictionary>
1948     <key>
1949       <string>170070</string>
1950     </key>
1951     <value>
1952       <string>荆门</string>
1953     </value>
1954   </SerializableDictionary>
1955   <SerializableDictionary>
1956     <key>
1957       <string>170080</string>
1958     </key>
1959     <value>
1960       <string>荆州</string>
1961     </value>
1962   </SerializableDictionary>
1963   <SerializableDictionary>
1964     <key>
1965       <string>170090</string>
1966     </key>
1967     <value>
1968       <string>黄石</string>
1969     </value>
1970   </SerializableDictionary>
1971   <SerializableDictionary>
1972     <key>
1973       <string>170100</string>
1974     </key>
1975     <value>
1976       <string>鄂州</string>
1977     </value>
1978   </SerializableDictionary>
1979   <SerializableDictionary>
1980     <key>
1981       <string>170110</string>
1982     </key>
1983     <value>
1984       <string>黄冈</string>
1985     </value>
1986   </SerializableDictionary>
1987   <SerializableDictionary>
1988     <key>
1989       <string>170120</string>
1990     </key>
1991     <value>
1992       <string>孝感</string>
1993     </value>
1994   </SerializableDictionary>
1995   <SerializableDictionary>
1996     <key>
1997       <string>170130</string>
1998     </key>
1999     <value>
2000       <string>咸宁</string>
2001     </value>
2002   </SerializableDictionary>
2003   <SerializableDictionary>
2004     <key>
2005       <string>170140</string>
2006     </key>
2007     <value>
2008       <string>随州</string>
2009     </value>
2010   </SerializableDictionary>
2011   <SerializableDictionary>
2012     <key>
2013       <string>170150</string>
2014     </key>
2015     <value>
2016       <string>仙桃</string>
2017     </value>
2018   </SerializableDictionary>
2019   <SerializableDictionary>
2020     <key>
2021       <string>170160</string>
2022     </key>
2023     <value>
2024       <string>天门</string>
2025     </value>
2026   </SerializableDictionary>
2027   <SerializableDictionary>
2028     <key>
2029       <string>170170</string>
2030     </key>
2031     <value>
2032       <string>神农架</string>
2033     </value>
2034   </SerializableDictionary>
2035   <SerializableDictionary>
2036     <key>
2037       <string>170180</string>
2038     </key>
2039     <value>
2040       <string>恩施</string>
2041     </value>
2042   </SerializableDictionary>
2043   <SerializableDictionary>
2044     <key>
2045       <string>170190</string>
2046     </key>
2047     <value>
2048       <string>公安</string>
2049     </value>
2050   </SerializableDictionary>
2051   <SerializableDictionary>
2052     <key>
2053       <string>170200</string>
2054     </key>
2055     <value>
2056       <string>武穴</string>
2057     </value>
2058   </SerializableDictionary>
2059   <SerializableDictionary>
2060     <key>
2061       <string>170210</string>
2062     </key>
2063     <value>
2064       <string>宜城</string>
2065     </value>
2066   </SerializableDictionary>
2067   <SerializableDictionary>
2068     <key>
2069       <string>180020</string>
2070     </key>
2071     <value>
2072       <string>长沙</string>
2073     </value>
2074   </SerializableDictionary>
2075   <SerializableDictionary>
2076     <key>
2077       <string>180030</string>
2078     </key>
2079     <value>
2080       <string>湘潭</string>
2081     </value>
2082   </SerializableDictionary>
2083   <SerializableDictionary>
2084     <key>
2085       <string>180040</string>
2086     </key>
2087     <value>
2088       <string>株洲</string>
2089     </value>
2090   </SerializableDictionary>
2091   <SerializableDictionary>
2092     <key>
2093       <string>180050</string>
2094     </key>
2095     <value>
2096       <string>常德</string>
2097     </value>
2098   </SerializableDictionary>
2099   <SerializableDictionary>
2100     <key>
2101       <string>180060</string>
2102     </key>
2103     <value>
2104       <string>衡阳</string>
2105     </value>
2106   </SerializableDictionary>
2107   <SerializableDictionary>
2108     <key>
2109       <string>180070</string>
2110     </key>
2111     <value>
2112       <string>益阳</string>
2113     </value>
2114   </SerializableDictionary>
2115   <SerializableDictionary>
2116     <key>
2117       <string>180080</string>
2118     </key>
2119     <value>
2120       <string>郴州</string>
2121     </value>
2122   </SerializableDictionary>
2123   <SerializableDictionary>
2124     <key>
2125       <string>180090</string>
2126     </key>
2127     <value>
2128       <string>岳阳</string>
2129     </value>
2130   </SerializableDictionary>
2131   <SerializableDictionary>
2132     <key>
2133       <string>180100</string>
2134     </key>
2135     <value>
2136       <string>邵阳</string>
2137     </value>
2138   </SerializableDictionary>
2139   <SerializableDictionary>
2140     <key>
2141       <string>180110</string>
2142     </key>
2143     <value>
2144       <string>张家界</string>
2145     </value>
2146   </SerializableDictionary>
2147   <SerializableDictionary>
2148     <key>
2149       <string>180120</string>
2150     </key>
2151     <value>
2152       <string>娄底</string>
2153     </value>
2154   </SerializableDictionary>
2155   <SerializableDictionary>
2156     <key>
2157       <string>180130</string>
2158     </key>
2159     <value>
2160       <string>永州</string>
2161     </value>
2162   </SerializableDictionary>
2163   <SerializableDictionary>
2164     <key>
2165       <string>180140</string>
2166     </key>
2167     <value>
2168       <string>怀化</string>
2169     </value>
2170   </SerializableDictionary>
2171   <SerializableDictionary>
2172     <key>
2173       <string>180150</string>
2174     </key>
2175     <value>
2176       <string>湘西土家族苗族自治州</string>
2177     </value>
2178   </SerializableDictionary>
2179   <SerializableDictionary>
2180     <key>
2181       <string>190020</string>
2182     </key>
2183     <value>
2184       <string>长春</string>
2185     </value>
2186   </SerializableDictionary>
2187   <SerializableDictionary>
2188     <key>
2189       <string>190030</string>
2190     </key>
2191     <value>
2192       <string>吉林市</string>
2193     </value>
2194   </SerializableDictionary>
2195   <SerializableDictionary>
2196     <key>
2197       <string>190040</string>
2198     </key>
2199     <value>
2200       <string>四平</string>
2201     </value>
2202   </SerializableDictionary>
2203   <SerializableDictionary>
2204     <key>
2205       <string>190050</string>
2206     </key>
2207     <value>
2208       <string>辽源</string>
2209     </value>
2210   </SerializableDictionary>
2211   <SerializableDictionary>
2212     <key>
2213       <string>190060</string>
2214     </key>
2215     <value>
2216       <string>通化</string>
2217     </value>
2218   </SerializableDictionary>
2219   <SerializableDictionary>
2220     <key>
2221       <string>190070</string>
2222     </key>
2223     <value>
2224       <string>白山</string>
2225     </value>
2226   </SerializableDictionary>
2227   <SerializableDictionary>
2228     <key>
2229       <string>190080</string>
2230     </key>
2231     <value>
2232       <string>松原</string>
2233     </value>
2234   </SerializableDictionary>
2235   <SerializableDictionary>
2236     <key>
2237       <string>190090</string>
2238     </key>
2239     <value>
2240       <string>白城</string>
2241     </value>
2242   </SerializableDictionary>
2243   <SerializableDictionary>
2244     <key>
2245       <string>190100</string>
2246     </key>
2247     <value>
2248       <string>延吉</string>
2249     </value>
2250   </SerializableDictionary>
2251   <SerializableDictionary>
2252     <key>
2253       <string>190110</string>
2254     </key>
2255     <value>
2256       <string>延边</string>
2257     </value>
2258   </SerializableDictionary>
2259   <SerializableDictionary>
2260     <key>
2261       <string>190120</string>
2262     </key>
2263     <value>
2264       <string>公主岭</string>
2265     </value>
2266   </SerializableDictionary>
2267   <SerializableDictionary>
2268     <key>
2269       <string>200020</string>
2270     </key>
2271     <value>
2272       <string>南昌</string>
2273     </value>
2274   </SerializableDictionary>
2275   <SerializableDictionary>
2276     <key>
2277       <string>200030</string>
2278     </key>
2279     <value>
2280       <string>九江</string>
2281     </value>
2282   </SerializableDictionary>
2283   <SerializableDictionary>
2284     <key>
2285       <string>200040</string>
2286     </key>
2287     <value>
2288       <string>赣州</string>
2289     </value>
2290   </SerializableDictionary>
2291   <SerializableDictionary>
2292     <key>
2293       <string>200050</string>
2294     </key>
2295     <value>
2296       <string>宜春</string>
2297     </value>
2298   </SerializableDictionary>
2299   <SerializableDictionary>
2300     <key>
2301       <string>200060</string>
2302     </key>
2303     <value>
2304       <string>吉安</string>
2305     </value>
2306   </SerializableDictionary>
2307   <SerializableDictionary>
2308     <key>
2309       <string>200070</string>
2310     </key>
2311     <value>
2312       <string>上饶</string>
2313     </value>
2314   </SerializableDictionary>
2315   <SerializableDictionary>
2316     <key>
2317       <string>200080</string>
2318     </key>
2319     <value>
2320       <string>抚州</string>
2321     </value>
2322   </SerializableDictionary>
2323   <SerializableDictionary>
2324     <key>
2325       <string>200090</string>
2326     </key>
2327     <value>
2328       <string>景德镇</string>
2329     </value>
2330   </SerializableDictionary>
2331   <SerializableDictionary>
2332     <key>
2333       <string>200100</string>
2334     </key>
2335     <value>
2336       <string>萍乡</string>
2337     </value>
2338   </SerializableDictionary>
2339   <SerializableDictionary>
2340     <key>
2341       <string>200110</string>
2342     </key>
2343     <value>
2344       <string>新余</string>
2345     </value>
2346   </SerializableDictionary>
2347   <SerializableDictionary>
2348     <key>
2349       <string>200120</string>
2350     </key>
2351     <value>
2352       <string>鹰潭</string>
2353     </value>
2354   </SerializableDictionary>
2355   <SerializableDictionary>
2356     <key>
2357       <string>210020</string>
2358     </key>
2359     <value>
2360       <string>沈阳</string>
2361     </value>
2362   </SerializableDictionary>
2363   <SerializableDictionary>
2364     <key>
2365       <string>210030</string>
2366     </key>
2367     <value>
2368       <string>鞍山</string>
2369     </value>
2370   </SerializableDictionary>
2371   <SerializableDictionary>
2372     <key>
2373       <string>210040</string>
2374     </key>
2375     <value>
2376       <string>大连</string>
2377     </value>
2378   </SerializableDictionary>
2379   <SerializableDictionary>
2380     <key>
2381       <string>210050</string>
2382     </key>
2383     <value>
2384       <string>葫芦岛</string>
2385     </value>
2386   </SerializableDictionary>
2387   <SerializableDictionary>
2388     <key>
2389       <string>210060</string>
2390     </key>
2391     <value>
2392       <string>抚顺</string>
2393     </value>
2394   </SerializableDictionary>
2395   <SerializableDictionary>
2396     <key>
2397       <string>210070</string>
2398     </key>
2399     <value>
2400       <string>本溪</string>
2401     </value>
2402   </SerializableDictionary>
2403   <SerializableDictionary>
2404     <key>
2405       <string>210080</string>
2406     </key>
2407     <value>
2408       <string>丹东</string>
2409     </value>
2410   </SerializableDictionary>
2411   <SerializableDictionary>
2412     <key>
2413       <string>210090</string>
2414     </key>
2415     <value>
2416       <string>锦州</string>
2417     </value>
2418   </SerializableDictionary>
2419   <SerializableDictionary>
2420     <key>
2421       <string>210100</string>
2422     </key>
2423     <value>
2424       <string>营口</string>
2425     </value>
2426   </SerializableDictionary>
2427   <SerializableDictionary>
2428     <key>
2429       <string>210110</string>
2430     </key>
2431     <value>
2432       <string>阜新</string>
2433     </value>
2434   </SerializableDictionary>
2435   <SerializableDictionary>
2436     <key>
2437       <string>210120</string>
2438     </key>
2439     <value>
2440       <string>辽阳</string>
2441     </value>
2442   </SerializableDictionary>
2443   <SerializableDictionary>
2444     <key>
2445       <string>210130</string>
2446     </key>
2447     <value>
2448       <string>盘锦</string>
2449     </value>
2450   </SerializableDictionary>
2451   <SerializableDictionary>
2452     <key>
2453       <string>210140</string>
2454     </key>
2455     <value>
2456       <string>铁岭</string>
2457     </value>
2458   </SerializableDictionary>
2459   <SerializableDictionary>
2460     <key>
2461       <string>210150</string>
2462     </key>
2463     <value>
2464       <string>朝阳</string>
2465     </value>
2466   </SerializableDictionary>
2467   <SerializableDictionary>
2468     <key>
2469       <string>210160</string>
2470     </key>
2471     <value>
2472       <string>兴城</string>
2473     </value>
2474   </SerializableDictionary>
2475   <SerializableDictionary>
2476     <key>
2477       <string>210170</string>
2478     </key>
2479     <value>
2480       <string>海城</string>
2481     </value>
2482   </SerializableDictionary>
2483   <SerializableDictionary>
2484     <key>
2485       <string>210180</string>
2486     </key>
2487     <value>
2488       <string>昌图</string>
2489     </value>
2490   </SerializableDictionary>
2491   <SerializableDictionary>
2492     <key>
2493       <string>210190</string>
2494     </key>
2495     <value>
2496       <string>开原</string>
2497     </value>
2498   </SerializableDictionary>
2499   <SerializableDictionary>
2500     <key>
2501       <string>220020</string>
2502     </key>
2503     <value>
2504       <string>呼和浩特</string>
2505     </value>
2506   </SerializableDictionary>
2507   <SerializableDictionary>
2508     <key>
2509       <string>220030</string>
2510     </key>
2511     <value>
2512       <string>包头</string>
2513     </value>
2514   </SerializableDictionary>
2515   <SerializableDictionary>
2516     <key>
2517       <string>220040</string>
2518     </key>
2519     <value>
2520       <string>赤峰</string>
2521     </value>
2522   </SerializableDictionary>
2523   <SerializableDictionary>
2524     <key>
2525       <string>220050</string>
2526     </key>
2527     <value>
2528       <string>鄂尔多斯</string>
2529     </value>
2530   </SerializableDictionary>
2531   <SerializableDictionary>
2532     <key>
2533       <string>220060</string>
2534     </key>
2535     <value>
2536       <string>乌海</string>
2537     </value>
2538   </SerializableDictionary>
2539   <SerializableDictionary>
2540     <key>
2541       <string>220070</string>
2542     </key>
2543     <value>
2544       <string>通辽</string>
2545     </value>
2546   </SerializableDictionary>
2547   <SerializableDictionary>
2548     <key>
2549       <string>220080</string>
2550     </key>
2551     <value>
2552       <string>呼伦贝尔</string>
2553     </value>
2554   </SerializableDictionary>
2555   <SerializableDictionary>
2556     <key>
2557       <string>220090</string>
2558     </key>
2559     <value>
2560       <string>巴彦淖尔</string>
2561     </value>
2562   </SerializableDictionary>
2563   <SerializableDictionary>
2564     <key>
2565       <string>220100</string>
2566     </key>
2567     <value>
2568       <string>乌兰察布</string>
2569     </value>
2570   </SerializableDictionary>
2571   <SerializableDictionary>
2572     <key>
2573       <string>220110</string>
2574     </key>
2575     <value>
2576       <string>兴安盟</string>
2577     </value>
2578   </SerializableDictionary>
2579   <SerializableDictionary>
2580     <key>
2581       <string>220120</string>
2582     </key>
2583     <value>
2584       <string>锡林郭勒盟</string>
2585     </value>
2586   </SerializableDictionary>
2587   <SerializableDictionary>
2588     <key>
2589       <string>220130</string>
2590     </key>
2591     <value>
2592       <string>阿拉善盟</string>
2593     </value>
2594   </SerializableDictionary>
2595   <SerializableDictionary>
2596     <key>
2597       <string>220140</string>
2598     </key>
2599     <value>
2600       <string>乌审旗</string>
2601     </value>
2602   </SerializableDictionary>
2603   <SerializableDictionary>
2604     <key>
2605       <string>220150</string>
2606     </key>
2607     <value>
2608       <string>满洲里</string>
2609     </value>
2610   </SerializableDictionary>
2611   <SerializableDictionary>
2612     <key>
2613       <string>230020</string>
2614     </key>
2615     <value>
2616       <string>银川</string>
2617     </value>
2618   </SerializableDictionary>
2619   <SerializableDictionary>
2620     <key>
2621       <string>230030</string>
2622     </key>
2623     <value>
2624       <string>石嘴山</string>
2625     </value>
2626   </SerializableDictionary>
2627   <SerializableDictionary>
2628     <key>
2629       <string>230040</string>
2630     </key>
2631     <value>
2632       <string>吴忠</string>
2633     </value>
2634   </SerializableDictionary>
2635   <SerializableDictionary>
2636     <key>
2637       <string>230050</string>
2638     </key>
2639     <value>
2640       <string>固原</string>
2641     </value>
2642   </SerializableDictionary>
2643   <SerializableDictionary>
2644     <key>
2645       <string>230060</string>
2646     </key>
2647     <value>
2648       <string>中卫</string>
2649     </value>
2650   </SerializableDictionary>
2651   <SerializableDictionary>
2652     <key>
2653       <string>240020</string>
2654     </key>
2655     <value>
2656       <string>西宁</string>
2657     </value>
2658   </SerializableDictionary>
2659   <SerializableDictionary>
2660     <key>
2661       <string>240030</string>
2662     </key>
2663     <value>
2664       <string>海东</string>
2665     </value>
2666   </SerializableDictionary>
2667   <SerializableDictionary>
2668     <key>
2669       <string>240040</string>
2670     </key>
2671     <value>
2672       <string>海西藏族自治州</string>
2673     </value>
2674   </SerializableDictionary>
2675   <SerializableDictionary>
2676     <key>
2677       <string>240050</string>
2678     </key>
2679     <value>
2680       <string>海北藏族自治州</string>
2681     </value>
2682   </SerializableDictionary>
2683   <SerializableDictionary>
2684     <key>
2685       <string>240060</string>
2686     </key>
2687     <value>
2688       <string>黄南藏族自治州</string>
2689     </value>
2690   </SerializableDictionary>
2691   <SerializableDictionary>
2692     <key>
2693       <string>240070</string>
2694     </key>
2695     <value>
2696       <string>海南藏族自治州</string>
2697     </value>
2698   </SerializableDictionary>
2699   <SerializableDictionary>
2700     <key>
2701       <string>240080</string>
2702     </key>
2703     <value>
2704       <string>果洛藏族自治州</string>
2705     </value>
2706   </SerializableDictionary>
2707   <SerializableDictionary>
2708     <key>
2709       <string>240090</string>
2710     </key>
2711     <value>
2712       <string>玉树藏族自治州</string>
2713     </value>
2714   </SerializableDictionary>
2715   <SerializableDictionary>
2716     <key>
2717       <string>250020</string>
2718     </key>
2719     <value>
2720       <string>济南</string>
2721     </value>
2722   </SerializableDictionary>
2723   <SerializableDictionary>
2724     <key>
2725       <string>250030</string>
2726     </key>
2727     <value>
2728       <string>德州</string>
2729     </value>
2730   </SerializableDictionary>
2731   <SerializableDictionary>
2732     <key>
2733       <string>250040</string>
2734     </key>
2735     <value>
2736       <string>东营</string>
2737     </value>
2738   </SerializableDictionary>
2739   <SerializableDictionary>
2740     <key>
2741       <string>250050</string>
2742     </key>
2743     <value>
2744       <string>济宁</string>
2745     </value>
2746   </SerializableDictionary>
2747   <SerializableDictionary>
2748     <key>
2749       <string>250060</string>
2750     </key>
2751     <value>
2752       <string>临沂</string>
2753     </value>
2754   </SerializableDictionary>
2755   <SerializableDictionary>
2756     <key>
2757       <string>250070</string>
2758     </key>
2759     <value>
2760       <string>青岛</string>
2761     </value>
2762   </SerializableDictionary>
2763   <SerializableDictionary>
2764     <key>
2765       <string>250080</string>
2766     </key>
2767     <value>
2768       <string>日照</string>
2769     </value>
2770   </SerializableDictionary>
2771   <SerializableDictionary>
2772     <key>
2773       <string>250090</string>
2774     </key>
2775     <value>
2776       <string>泰安</string>
2777     </value>
2778   </SerializableDictionary>
2779   <SerializableDictionary>
2780     <key>
2781       <string>250100</string>
2782     </key>
2783     <value>
2784       <string>威海</string>
2785     </value>
2786   </SerializableDictionary>
2787   <SerializableDictionary>
2788     <key>
2789       <string>250110</string>
2790     </key>
2791     <value>
2792       <string>潍坊</string>
2793     </value>
2794   </SerializableDictionary>
2795   <SerializableDictionary>
2796     <key>
2797       <string>250120</string>
2798     </key>
2799     <value>
2800       <string>烟台</string>
2801     </value>
2802   </SerializableDictionary>
2803   <SerializableDictionary>
2804     <key>
2805       <string>250130</string>
2806     </key>
2807     <value>
2808       <string>淄博</string>
2809     </value>
2810   </SerializableDictionary>
2811   <SerializableDictionary>
2812     <key>
2813       <string>250140</string>
2814     </key>
2815     <value>
2816       <string>枣庄</string>
2817     </value>
2818   </SerializableDictionary>
2819   <SerializableDictionary>
2820     <key>
2821       <string>250150</string>
2822     </key>
2823     <value>
2824       <string>滨州</string>
2825     </value>
2826   </SerializableDictionary>
2827   <SerializableDictionary>
2828     <key>
2829       <string>250160</string>
2830     </key>
2831     <value>
2832       <string>聊城</string>
2833     </value>
2834   </SerializableDictionary>
2835   <SerializableDictionary>
2836     <key>
2837       <string>250170</string>
2838     </key>
2839     <value>
2840       <string>菏泽</string>
2841     </value>
2842   </SerializableDictionary>
2843   <SerializableDictionary>
2844     <key>
2845       <string>250180</string>
2846     </key>
2847     <value>
2848       <string>莱芜</string>
2849     </value>
2850   </SerializableDictionary>
2851   <SerializableDictionary>
2852     <key>
2853       <string>250190</string>
2854     </key>
2855     <value>
2856       <string>荣成</string>
2857     </value>
2858   </SerializableDictionary>
2859   <SerializableDictionary>
2860     <key>
2861       <string>250200</string>
2862     </key>
2863     <value>
2864       <string>黄岛</string>
2865     </value>
2866   </SerializableDictionary>
2867   <SerializableDictionary>
2868     <key>
2869       <string>250210</string>
2870     </key>
2871     <value>
2872       <string>乳山</string>
2873     </value>
2874   </SerializableDictionary>
2875   <SerializableDictionary>
2876     <key>
2877       <string>250220</string>
2878     </key>
2879     <value>
2880       <string>城阳</string>
2881     </value>
2882   </SerializableDictionary>
2883   <SerializableDictionary>
2884     <key>
2885       <string>250230</string>
2886     </key>
2887     <value>
2888       <string>即墨</string>
2889     </value>
2890   </SerializableDictionary>
2891   <SerializableDictionary>
2892     <key>
2893       <string>250240</string>
2894     </key>
2895     <value>
2896       <string>肥城</string>
2897     </value>
2898   </SerializableDictionary>
2899   <SerializableDictionary>
2900     <key>
2901       <string>250250</string>
2902     </key>
2903     <value>
2904       <string>兖州</string>
2905     </value>
2906   </SerializableDictionary>
2907   <SerializableDictionary>
2908     <key>
2909       <string>250260</string>
2910     </key>
2911     <value>
2912       <string>海阳</string>
2913     </value>
2914   </SerializableDictionary>
2915   <SerializableDictionary>
2916     <key>
2917       <string>250270</string>
2918     </key>
2919     <value>
2920       <string>胶州</string>
2921     </value>
2922   </SerializableDictionary>
2923   <SerializableDictionary>
2924     <key>
2925       <string>250280</string>
2926     </key>
2927     <value>
2928       <string>胶南</string>
2929     </value>
2930   </SerializableDictionary>
2931   <SerializableDictionary>
2932     <key>
2933       <string>250290</string>
2934     </key>
2935     <value>
2936       <string>平度</string>
2937     </value>
2938   </SerializableDictionary>
2939   <SerializableDictionary>
2940     <key>
2941       <string>250300</string>
2942     </key>
2943     <value>
2944       <string>莱西</string>
2945     </value>
2946   </SerializableDictionary>
2947   <SerializableDictionary>
2948     <key>
2949       <string>260020</string>
2950     </key>
2951     <value>
2952       <string>太原</string>
2953     </value>
2954   </SerializableDictionary>
2955   <SerializableDictionary>
2956     <key>
2957       <string>260030</string>
2958     </key>
2959     <value>
2960       <string>大同</string>
2961     </value>
2962   </SerializableDictionary>
2963   <SerializableDictionary>
2964     <key>
2965       <string>260040</string>
2966     </key>
2967     <value>
2968       <string>临汾</string>
2969     </value>
2970   </SerializableDictionary>
2971   <SerializableDictionary>
2972     <key>
2973       <string>260050</string>
2974     </key>
2975     <value>
2976       <string>运城</string>
2977     </value>
2978   </SerializableDictionary>
2979   <SerializableDictionary>
2980     <key>
2981       <string>260060</string>
2982     </key>
2983     <value>
2984       <string>长治</string>
2985     </value>
2986   </SerializableDictionary>
2987   <SerializableDictionary>
2988     <key>
2989       <string>260070</string>
2990     </key>
2991     <value>
2992       <string>阳泉</string>
2993     </value>
2994   </SerializableDictionary>
2995   <SerializableDictionary>
2996     <key>
2997       <string>260080</string>
2998     </key>
2999     <value>
3000       <string>晋城</string>
3001     </value>
3002   </SerializableDictionary>
3003   <SerializableDictionary>
3004     <key>
3005       <string>260090</string>
3006     </key>
3007     <value>
3008       <string>朔州</string>
3009     </value>
3010   </SerializableDictionary>
3011   <SerializableDictionary>
3012     <key>
3013       <string>260100</string>
3014     </key>
3015     <value>
3016       <string>晋中</string>
3017     </value>
3018   </SerializableDictionary>
3019   <SerializableDictionary>
3020     <key>
3021       <string>260110</string>
3022     </key>
3023     <value>
3024       <string>忻州</string>
3025     </value>
3026   </SerializableDictionary>
3027   <SerializableDictionary>
3028     <key>
3029       <string>260120</string>
3030     </key>
3031     <value>
3032       <string>吕梁</string>
3033     </value>
3034   </SerializableDictionary>
3035   <SerializableDictionary>
3036     <key>
3037       <string>260130</string>
3038     </key>
3039     <value>
3040       <string>永济</string>
3041     </value>
3042   </SerializableDictionary>
3043   <SerializableDictionary>
3044     <key>
3045       <string>260140</string>
3046     </key>
3047     <value>
3048       <string>和顺</string>
3049     </value>
3050   </SerializableDictionary>
3051   <SerializableDictionary>
3052     <key>
3053       <string>270020</string>
3054     </key>
3055     <value>
3056       <string>西安</string>
3057     </value>
3058   </SerializableDictionary>
3059   <SerializableDictionary>
3060     <key>
3061       <string>270030</string>
3062     </key>
3063     <value>
3064       <string>宝鸡</string>
3065     </value>
3066   </SerializableDictionary>
3067   <SerializableDictionary>
3068     <key>
3069       <string>270040</string>
3070     </key>
3071     <value>
3072       <string>咸阳</string>
3073     </value>
3074   </SerializableDictionary>
3075   <SerializableDictionary>
3076     <key>
3077       <string>270050</string>
3078     </key>
3079     <value>
3080       <string>铜川</string>
3081     </value>
3082   </SerializableDictionary>
3083   <SerializableDictionary>
3084     <key>
3085       <string>270060</string>
3086     </key>
3087     <value>
3088       <string>渭南</string>
3089     </value>
3090   </SerializableDictionary>
3091   <SerializableDictionary>
3092     <key>
3093       <string>270070</string>
3094     </key>
3095     <value>
3096       <string>汉中</string>
3097     </value>
3098   </SerializableDictionary>
3099   <SerializableDictionary>
3100     <key>
3101       <string>270080</string>
3102     </key>
3103     <value>
3104       <string>安康</string>
3105     </value>
3106   </SerializableDictionary>
3107   <SerializableDictionary>
3108     <key>
3109       <string>270090</string>
3110     </key>
3111     <value>
3112       <string>商洛</string>
3113     </value>
3114   </SerializableDictionary>
3115   <SerializableDictionary>
3116     <key>
3117       <string>270100</string>
3118     </key>
3119     <value>
3120       <string>延安</string>
3121     </value>
3122   </SerializableDictionary>
3123   <SerializableDictionary>
3124     <key>
3125       <string>270110</string>
3126     </key>
3127     <value>
3128       <string>榆林</string>
3129     </value>
3130   </SerializableDictionary>
3131   <SerializableDictionary>
3132     <key>
3133       <string>270120</string>
3134     </key>
3135     <value>
3136       <string>杨凌</string>
3137     </value>
3138   </SerializableDictionary>
3139   <SerializableDictionary>
3140     <key>
3141       <string>270130</string>
3142     </key>
3143     <value>
3144       <string>兴平</string>
3145     </value>
3146   </SerializableDictionary>
3147   <SerializableDictionary>
3148     <key>
3149       <string>280020</string>
3150     </key>
3151     <value>
3152       <string>成都</string>
3153     </value>
3154   </SerializableDictionary>
3155   <SerializableDictionary>
3156     <key>
3157       <string>280030</string>
3158     </key>
3159     <value>
3160       <string>乐山</string>
3161     </value>
3162   </SerializableDictionary>
3163   <SerializableDictionary>
3164     <key>
3165       <string>280040</string>
3166     </key>
3167     <value>
3168       <string>泸州</string>
3169     </value>
3170   </SerializableDictionary>
3171   <SerializableDictionary>
3172     <key>
3173       <string>280050</string>
3174     </key>
3175     <value>
3176       <string>绵阳</string>
3177     </value>
3178   </SerializableDictionary>
3179   <SerializableDictionary>
3180     <key>
3181       <string>280060</string>
3182     </key>
3183     <value>
3184       <string>内江</string>
3185     </value>
3186   </SerializableDictionary>
3187   <SerializableDictionary>
3188     <key>
3189       <string>280070</string>
3190     </key>
3191     <value>
3192       <string>宜宾</string>
3193     </value>
3194   </SerializableDictionary>
3195   <SerializableDictionary>
3196     <key>
3197       <string>280080</string>
3198     </key>
3199     <value>
3200       <string>自贡</string>
3201     </value>
3202   </SerializableDictionary>
3203   <SerializableDictionary>
3204     <key>
3205       <string>280090</string>
3206     </key>
3207     <value>
3208       <string>攀枝花</string>
3209     </value>
3210   </SerializableDictionary>
3211   <SerializableDictionary>
3212     <key>
3213       <string>280100</string>
3214     </key>
3215     <value>
3216       <string>德阳</string>
3217     </value>
3218   </SerializableDictionary>
3219   <SerializableDictionary>
3220     <key>
3221       <string>280110</string>
3222     </key>
3223     <value>
3224       <string>广元</string>
3225     </value>
3226   </SerializableDictionary>
3227   <SerializableDictionary>
3228     <key>
3229       <string>280120</string>
3230     </key>
3231     <value>
3232       <string>遂宁</string>
3233     </value>
3234   </SerializableDictionary>
3235   <SerializableDictionary>
3236     <key>
3237       <string>280130</string>
3238     </key>
3239     <value>
3240       <string>南充</string>
3241     </value>
3242   </SerializableDictionary>
3243   <SerializableDictionary>
3244     <key>
3245       <string>280140</string>
3246     </key>
3247     <value>
3248       <string>眉山</string>
3249     </value>
3250   </SerializableDictionary>
3251   <SerializableDictionary>
3252     <key>
3253       <string>280150</string>
3254     </key>
3255     <value>
3256       <string>广安</string>
3257     </value>
3258   </SerializableDictionary>
3259   <SerializableDictionary>
3260     <key>
3261       <string>280160</string>
3262     </key>
3263     <value>
3264       <string>达州</string>
3265     </value>
3266   </SerializableDictionary>
3267   <SerializableDictionary>
3268     <key>
3269       <string>280170</string>
3270     </key>
3271     <value>
3272       <string>雅安</string>
3273     </value>
3274   </SerializableDictionary>
3275   <SerializableDictionary>
3276     <key>
3277       <string>280180</string>
3278     </key>
3279     <value>
3280       <string>巴中</string>
3281     </value>
3282   </SerializableDictionary>
3283   <SerializableDictionary>
3284     <key>
3285       <string>280190</string>
3286     </key>
3287     <value>
3288       <string>资阳</string>
3289     </value>
3290   </SerializableDictionary>
3291   <SerializableDictionary>
3292     <key>
3293       <string>280200</string>
3294     </key>
3295     <value>
3296       <string>西昌</string>
3297     </value>
3298   </SerializableDictionary>
3299   <SerializableDictionary>
3300     <key>
3301       <string>280210</string>
3302     </key>
3303     <value>
3304       <string>甘孜</string>
3305     </value>
3306   </SerializableDictionary>
3307   <SerializableDictionary>
3308     <key>
3309       <string>280220</string>
3310     </key>
3311     <value>
3312       <string>阿坝</string>
3313     </value>
3314   </SerializableDictionary>
3315   <SerializableDictionary>
3316     <key>
3317       <string>280230</string>
3318     </key>
3319     <value>
3320       <string>凉山</string>
3321     </value>
3322   </SerializableDictionary>
3323   <SerializableDictionary>
3324     <key>
3325       <string>280240</string>
3326     </key>
3327     <value>
3328       <string>峨眉</string>
3329     </value>
3330   </SerializableDictionary>
3331   <SerializableDictionary>
3332     <key>
3333       <string>280250</string>
3334     </key>
3335     <value>
3336       <string>简阳</string>
3337     </value>
3338   </SerializableDictionary>
3339   <SerializableDictionary>
3340     <key>
3341       <string>290020</string>
3342     </key>
3343     <value>
3344       <string>拉萨</string>
3345     </value>
3346   </SerializableDictionary>
3347   <SerializableDictionary>
3348     <key>
3349       <string>290030</string>
3350     </key>
3351     <value>
3352       <string>日喀则</string>
3353     </value>
3354   </SerializableDictionary>
3355   <SerializableDictionary>
3356     <key>
3357       <string>290040</string>
3358     </key>
3359     <value>
3360       <string>林芝</string>
3361     </value>
3362   </SerializableDictionary>
3363   <SerializableDictionary>
3364     <key>
3365       <string>290050</string>
3366     </key>
3367     <value>
3368       <string>山南</string>
3369     </value>
3370   </SerializableDictionary>
3371   <SerializableDictionary>
3372     <key>
3373       <string>290060</string>
3374     </key>
3375     <value>
3376       <string>昌都</string>
3377     </value>
3378   </SerializableDictionary>
3379   <SerializableDictionary>
3380     <key>
3381       <string>290070</string>
3382     </key>
3383     <value>
3384       <string>那曲</string>
3385     </value>
3386   </SerializableDictionary>
3387   <SerializableDictionary>
3388     <key>
3389       <string>290080</string>
3390     </key>
3391     <value>
3392       <string>阿里</string>
3393     </value>
3394   </SerializableDictionary>
3395   <SerializableDictionary>
3396     <key>
3397       <string>300020</string>
3398     </key>
3399     <value>
3400       <string>乌鲁木齐</string>
3401     </value>
3402   </SerializableDictionary>
3403   <SerializableDictionary>
3404     <key>
3405       <string>300030</string>
3406     </key>
3407     <value>
3408       <string>喀什</string>
3409     </value>
3410   </SerializableDictionary>
3411   <SerializableDictionary>
3412     <key>
3413       <string>300040</string>
3414     </key>
3415     <value>
3416       <string>克拉玛依</string>
3417     </value>
3418   </SerializableDictionary>
3419   <SerializableDictionary>
3420     <key>
3421       <string>300050</string>
3422     </key>
3423     <value>
3424       <string>伊犁</string>
3425     </value>
3426   </SerializableDictionary>
3427   <SerializableDictionary>
3428     <key>
3429       <string>300060</string>
3430     </key>
3431     <value>
3432       <string>阿克苏</string>
3433     </value>
3434   </SerializableDictionary>
3435   <SerializableDictionary>
3436     <key>
3437       <string>300070</string>
3438     </key>
3439     <value>
3440       <string>哈密</string>
3441     </value>
3442   </SerializableDictionary>
3443   <SerializableDictionary>
3444     <key>
3445       <string>300080</string>
3446     </key>
3447     <value>
3448       <string>石河子</string>
3449     </value>
3450   </SerializableDictionary>
3451   <SerializableDictionary>
3452     <key>
3453       <string>300090</string>
3454     </key>
3455     <value>
3456       <string>阿拉尔</string>
3457     </value>
3458   </SerializableDictionary>
3459   <SerializableDictionary>
3460     <key>
3461       <string>300100</string>
3462     </key>
3463     <value>
3464       <string>五家渠</string>
3465     </value>
3466   </SerializableDictionary>
3467   <SerializableDictionary>
3468     <key>
3469       <string>300110</string>
3470     </key>
3471     <value>
3472       <string>图木舒克</string>
3473     </value>
3474   </SerializableDictionary>
3475   <SerializableDictionary>
3476     <key>
3477       <string>300120</string>
3478     </key>
3479     <value>
3480       <string>昌吉回族自治州</string>
3481     </value>
3482   </SerializableDictionary>
3483   <SerializableDictionary>
3484     <key>
3485       <string>300130</string>
3486     </key>
3487     <value>
3488       <string>阿勒泰</string>
3489     </value>
3490   </SerializableDictionary>
3491   <SerializableDictionary>
3492     <key>
3493       <string>300140</string>
3494     </key>
3495     <value>
3496       <string>吐鲁番</string>
3497     </value>
3498   </SerializableDictionary>
3499   <SerializableDictionary>
3500     <key>
3501       <string>300150</string>
3502     </key>
3503     <value>
3504       <string>塔城</string>
3505     </value>
3506   </SerializableDictionary>
3507   <SerializableDictionary>
3508     <key>
3509       <string>300160</string>
3510     </key>
3511     <value>
3512       <string>和田</string>
3513     </value>
3514   </SerializableDictionary>
3515   <SerializableDictionary>
3516     <key>
3517       <string>300170</string>
3518     </key>
3519     <value>
3520       <string>克孜勒苏柯尔克孜自治州</string>
3521     </value>
3522   </SerializableDictionary>
3523   <SerializableDictionary>
3524     <key>
3525       <string>300180</string>
3526     </key>
3527     <value>
3528       <string>巴音郭楞蒙古自治州</string>
3529     </value>
3530   </SerializableDictionary>
3531   <SerializableDictionary>
3532     <key>
3533       <string>300190</string>
3534     </key>
3535     <value>
3536       <string>博尔塔拉蒙古自治州</string>
3537     </value>
3538   </SerializableDictionary>
3539   <SerializableDictionary>
3540     <key>
3541       <string>300200</string>
3542     </key>
3543     <value>
3544       <string>奎屯市</string>
3545     </value>
3546   </SerializableDictionary>
3547   <SerializableDictionary>
3548     <key>
3549       <string>300210</string>
3550     </key>
3551     <value>
3552       <string>乌苏</string>
3553     </value>
3554   </SerializableDictionary>
3555   <SerializableDictionary>
3556     <key>
3557       <string>310020</string>
3558     </key>
3559     <value>
3560       <string>昆明</string>
3561     </value>
3562   </SerializableDictionary>
3563   <SerializableDictionary>
3564     <key>
3565       <string>310030</string>
3566     </key>
3567     <value>
3568       <string>大理</string>
3569     </value>
3570   </SerializableDictionary>
3571   <SerializableDictionary>
3572     <key>
3573       <string>310040</string>
3574     </key>
3575     <value>
3576       <string>丽江</string>
3577     </value>
3578   </SerializableDictionary>
3579   <SerializableDictionary>
3580     <key>
3581       <string>310050</string>
3582     </key>
3583     <value>
3584       <string>玉溪</string>
3585     </value>
3586   </SerializableDictionary>
3587   <SerializableDictionary>
3588     <key>
3589       <string>310060</string>
3590     </key>
3591     <value>
3592       <string>曲靖</string>
3593     </value>
3594   </SerializableDictionary>
3595   <SerializableDictionary>
3596     <key>
3597       <string>310070</string>
3598     </key>
3599     <value>
3600       <string>保山</string>
3601     </value>
3602   </SerializableDictionary>
3603   <SerializableDictionary>
3604     <key>
3605       <string>310080</string>
3606     </key>
3607     <value>
3608       <string>昭通</string>
3609     </value>
3610   </SerializableDictionary>
3611   <SerializableDictionary>
3612     <key>
3613       <string>310090</string>
3614     </key>
3615     <value>
3616       <string>普洱</string>
3617     </value>
3618   </SerializableDictionary>
3619   <SerializableDictionary>
3620     <key>
3621       <string>310100</string>
3622     </key>
3623     <value>
3624       <string>临沧</string>
3625     </value>
3626   </SerializableDictionary>
3627   <SerializableDictionary>
3628     <key>
3629       <string>310110</string>
3630     </key>
3631     <value>
3632       <string>红河哈尼族彝族自治州</string>
3633     </value>
3634   </SerializableDictionary>
3635   <SerializableDictionary>
3636     <key>
3637       <string>310120</string>
3638     </key>
3639     <value>
3640       <string>文山壮族苗族自治州</string>
3641     </value>
3642   </SerializableDictionary>
3643   <SerializableDictionary>
3644     <key>
3645       <string>310130</string>
3646     </key>
3647     <value>
3648       <string>西双版纳傣族自治州</string>
3649     </value>
3650   </SerializableDictionary>
3651   <SerializableDictionary>
3652     <key>
3653       <string>310140</string>
3654     </key>
3655     <value>
3656       <string>德宏傣族景颇族自治州</string>
3657     </value>
3658   </SerializableDictionary>
3659   <SerializableDictionary>
3660     <key>
3661       <string>310150</string>
3662     </key>
3663     <value>
3664       <string>楚雄彝族自治州</string>
3665     </value>
3666   </SerializableDictionary>
3667   <SerializableDictionary>
3668     <key>
3669       <string>310160</string>
3670     </key>
3671     <value>
3672       <string>怒江傈傈族自治州</string>
3673     </value>
3674   </SerializableDictionary>
3675   <SerializableDictionary>
3676     <key>
3677       <string>310170</string>
3678     </key>
3679     <value>
3680       <string>迪庆藏族自治州</string>
3681     </value>
3682   </SerializableDictionary>
3683   <SerializableDictionary>
3684     <key>
3685       <string>310180</string>
3686     </key>
3687     <value>
3688       <string>思茅</string>
3689     </value>
3690   </SerializableDictionary>
3691 </SerializableDictionaryOfStringString>
View Code

1.前程无忧

       前程无忧我相信应该是很多园友找工作的首选,博主就是在这上面注册了简历,并且每次换工作都是在这上面取得了成功,感觉还挺不错,祝愿各位园友都能找到自己称心如意的工作,只要我们大家都一起努力应该都没有问题的。

       下面介绍实现逻辑:

  1         #region * 前程无忧
  2         /// <summary>
  3         /// 线程池启动调用的方法
  4         /// </summary>
  5         /// <param name="obj"></param>
  6         private void Get51JobData(object obj)
  7         {
  8             string workAddress = this.txtAddress.Text.Trim();//工作地点
  9             string workAddressId = string.Empty;//工作地点ID
 10             string keyWord = this.txtKeyWord.Text.Trim();//关键词
 11             string upperSalary = this.txtSalary1.Text.Trim();//薪水范围
 12             string lowerSalary = this.txtSalary2.Text.Trim();//薪水范围
 13             string mustKey = string.Empty;//是否包含关键词
 14 
 15             jobInfoList2.Clear();
 16             curJobInfo2 = null;
 17             dt2.Rows.Clear();
 18             this.Invoke((MethodInvoker)delegate
 19             {
 20                 this.gcJob2.DataSource = dt2;
 21             });
 22             Thread th = null;//搜索线程
 23             if (th != null)
 24             {
 25                 th.Abort();
 26                 th = null;
 27             }
 28 
 29             //根据输入的城市找出城市ID
 30             KeyValuePair<string, string> kv = dic2.FirstOrDefault(t => t.Value.Contains(workAddress));
 31             if (kv.Key == null)
 32             {
 33                 XtraMessageBox.Show("无法搜索该工作地点", "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning);
 34                 return;
 35             }
 36             workAddressId = kv.Key;
 37             //勾选包含关键词
 38             if (this.chkMustKey.Checked)
 39             {
 40                 mustKey = this.txtMustKey.Text.Trim();
 41             }
 42 
 43             //调用接口
 44             JobFactory tws = new JobFactory("51Job", workAddress, workAddressId, keyWord, upperSalary, lowerSalary, mustKey);
 45             IJob job = tws.GetJob();
 46             if (job != null)
 47             {
 48                 job.GetJobEnd -= new GetJobEndEventHandler(job_GetJob2End);
 49                 job.GetJobEnd += new GetJobEndEventHandler(job_GetJob2End);
 50                 th = new Thread(new ThreadStart(job.GetJobInfoList));
 51                 th.IsBackground = true;
 52                 th.Start();
 53             }
 54         }
 55 
 56         /// <summary>
 57         /// 表格增加一行数据
 58         /// </summary>
 59         /// <param name="o"></param>
 60         /// <param name="e"></param>
 61         private void job_GetJob2End(object o, JobInfo e)
 62         {
 63             this.Invoke((MethodInvoker)delegate
 64             {
 65                 if (e != null)
 66                 {
 67                     jobInfoList2.Add(e);
 68                     curJobInfo2 = e;
 69                     this.gvJob2.AddNewRow();
 70                 }
 71                 else
 72                 {
 73                     this.layoutControlGroup2.Enabled = true;
 74                 }
 75             });
 76         }
 77 
 78         /// <summary>
 79         /// 表格增加行
 80         /// </summary>
 81         /// <param name="sender"></param>
 82         /// <param name="e"></param>
 83         private void gvJob2_InitNewRow(object sender, DevExpress.XtraGrid.Views.Grid.InitNewRowEventArgs e)
 84         {
 85             try
 86             {
 87                 DataRowView dr = this.gvJob2.GetRow(e.RowHandle) as DataRowView;
 88                 dr["Url"] = curJobInfo2.Url;//网站链接
 89                 dr["Position"] = curJobInfo2.Position;//职位名称
 90                 dr["Company"] = curJobInfo2.Company;//公司名称
 91                 dr["Nature"] = curJobInfo2.Nature;//公司性质
 92                 dr["Scale"] = curJobInfo2.Scale;//公司规模
 93                 dr["Salary"] = curJobInfo2.Salary;//月薪/年薪
 94                 dr["Address"] = curJobInfo2.Address;//工作地点
 95                 dr["Experience"] = curJobInfo2.Experience;//工作经验
 96                 dr["Education"] = curJobInfo2.Education;//最低学历
 97                 dr["Time"] = curJobInfo2.Time;//发布时间
 98 
 99                 this.gvJob2.UpdateCurrentRow();
100                 this.gvJob2.RefreshData();
101                 this.gvJob2.MoveLast();
102             }
103             catch
104             {
105                 XtraMessageBox.Show("添加行失败");
106             }
107         }
108 
109         /// <summary>
110         /// 双击行打开当前行链接
111         /// </summary>
112         /// <param name="sender"></param>
113         /// <param name="e"></param>
114         private void gcJob2_DoubleClick(object sender, EventArgs e)
115         {
116             string uri = this.gvJob2.GetFocusedDataRow()["Url"].ToString();
117             System.Diagnostics.Process.Start(uri);
118         }
119         #endregion

        以上三个函数的作用分别是线程池启动调用的方法、表格增加一行数据、表格增加行和双击行打开当前行链接四个方法,实现这四个方法即可获取前程无忧的数据,那么获取HTML内容和解析HTML需用另外一个类实现,实现这个类如下:

  1     public class JobFrom51Job : IJob
  2     {
  3         #region * 私有字段
  4         private string url = @"http://search.51job.com/jobsearch/search_result.php?";
  5 
  6         /// <summary>
  7         /// 工作地点
  8         /// </summary>
  9         private string workAddress;
 10         /// <summary>
 11         /// 工作地点ID
 12         /// </summary>
 13         private string workAddressId;
 14         /// <summary>
 15         /// 关键词
 16         /// </summary>
 17         private string keyWord;
 18         /// <summary>
 19         /// 包含词
 20         /// </summary>
 21         private string mustKey;
 22         #endregion
 23 
 24         public JobFrom51Job(string workAddress, string workAddressId, string keyWord, string mustKey)
 25         {
 26             this.workAddress = workAddress;
 27             this.workAddressId = workAddressId;
 28             this.keyWord = keyWord;
 29             this.mustKey = mustKey;
 30         }
 31 
 32         public event GetJobEndEventHandler GetJobEnd;
 33         public void GetJobInfoList()
 34         {
 35             try
 36             {
 37                 StringBuilder condition = new StringBuilder();
 38                 condition.Append("jobarea=" + workAddressId);
 39                 if (!string.IsNullOrEmpty(keyWord))
 40                 {
 41                     keyWord = System.Web.HttpUtility.UrlEncode(keyWord, Encoding.GetEncoding("gb2312"));
 42                     condition.Append("&keyword=" + keyWord);
 43                 }
 44                 condition.Append("&keywordtype=2");
 45 
 46                 url = url + condition.ToString();
 47                 string html = GetHtmlCode.GetByget(url, "gb2312");
 48                 GetJobInfoFromPage(html);
 49 
 50                 int pageCount = 0;
 51                 //页面数量
 52                 string pageCountRegexStr = "(?<=name=\"jobid_count\"\\s*?value=\")\\d+(?=\">)";
 53                 Regex pageCountRegex = new Regex(pageCountRegexStr);
 54                 pageCount = (int.Parse(pageCountRegex.Match(html).Value) + 29) / 30;
 55 
 56                 for (int i = 2; i <= pageCount; i++)
 57                 {
 58                     string url0 = url + string.Format("&curr_page={0}", i);
 59                     html = GetHtmlCode.GetByget(url0, "gb2312");
 60                     GetJobInfoFromPage(html);
 61                 }
 62                 if (GetJobEnd != null)
 63                 {
 64                     GetJobEnd(null, null);
 65                 }
 66             }
 67             catch (Exception exMsg)
 68             {
 69                 throw new Exception(exMsg.Message);
 70             }
 71         }
 72 
 73         private void GetJobInfoFromPage(string pageStr)
 74         {
 75             try
 76             {
 77                 pageStr = Regex.Replace(pageStr, "\\s", "");
 78                 //职位所有信息
 79                 string jobInfoRegexStr = "(?<=<trclass=\"tr0\").+?(?=</tr>)";
 80                 Regex jobInfoRegex = new Regex(jobInfoRegexStr);
 81                 MatchCollection jobInfoMC = jobInfoRegex.Matches(pageStr);
 82                 //--
 83                 foreach (Match m in jobInfoMC)
 84                 {
 85                     if (m.Value.Contains(workAddress))
 86                     {
 87                         //职位URL
 88                         string urlRegexStr = "(?<=<aadid=\"\"href=\").+?(?=\")";
 89                         string url0 = Regex.Match(m.Value, urlRegexStr).Value;
 90                         GetJobInfoFromUrl(url0);
 91                     }
 92                 }
 93             }
 94             catch (Exception exMsg)
 95             {
 96                 throw new Exception(exMsg.Message);
 97             }
 98         }
 99 
100         // 正则表达式过滤:正则表达式,要替换成的文本
101         private static readonly string[][] Filters =
102         {
103             new[] { @"(?is)<script.*?>.*?</script>", "" },
104             new[] { @"(?is)<style.*?>.*?</style>", "" },
105             new[] { @"(?is)<!--.*?-->", "" },    // 过滤Html代码中的注释
106             new[] { @"(?is)<footer.*?>.*?</footer>",""},
107             new[] { "(?is) <div style=\"width:470px; padding-left:5px;\">.*?</div>",""},
108             new[] { "(?is)<div id=\"top\">.*?</iframe>    </div></div>",""},
109             new[] { "(?is)<div class=\"grayline\" id=\"announcementbody\">.*?</li></ul>    </div>",""}
110         };
111 
112         private void GetJobInfoFromUrl(string url)
113         {
114             try
115             {
116                 JobInfo info = new JobInfo();
117                 //--
118                 string pageStr = GetHtmlCode.GetByget(url, "gb2312");
119                 if (string.IsNullOrEmpty(pageStr))
120                 {
121                     return;
122                 }
123                 //--
124                 pageStr = pageStr.Replace("\r\n", "");//替换换行符
125                 // 获取html,body标签内容
126                 string body = string.Empty;
127                 string bodyFilter = @"(?is)<body.*?</body>";
128                 Match m = Regex.Match(pageStr, bodyFilter);
129                 if (m.Success)
130                 {
131                     body = m.ToString().Replace("<tr >", "<tr>").Replace("\r\n", "");
132                 }
133                 // 过滤样式,脚本等不相干标签
134                 foreach (var filter in Filters)
135                 {
136                     body = Regex.Replace(body, filter[0], filter[1]);
137                 }
138                 //--
139                 if (!string.IsNullOrEmpty(mustKey) && !body.Contains(mustKey))
140                 {
141                     return;
142                 }
143                 body = Regex.Replace(body, "\\s", "");
144 
145                 info.Url = url;
146                 string basicInfoRegexStr0 = "<tdclass=\"sr_bt\"colspan=\"2\">(.*?)</td>"; //职位名称
147                 string position = Regex.Match(body, basicInfoRegexStr0).Value;
148                 if (string.IsNullOrEmpty(position))
149                 {
150                     basicInfoRegexStr0 = "<tdclass=\"sr_bt\"colspan=\"3\">(.*?)</td>";
151                     position = Regex.Match(body, basicInfoRegexStr0).Value;
152                 }
153                 info.Position = string.IsNullOrEmpty(position) ? "" : position.Substring(position.IndexOf(">") + 1, position.IndexOf("</") - position.IndexOf(">") - 1);
154 
155                 string basicInfoRegexStr1 = ".html\">(.*?)</a>";//公司名称 
156                 string company = Regex.Match(body, basicInfoRegexStr1).Value;
157                 info.Company = string.IsNullOrEmpty(company) ? "" : company.Substring(company.IndexOf(">") + 1, company.IndexOf("</a>") - company.IndexOf(">") - 1);
158 
159                 string basicInfoRegexStr2 = "工作地点:</td><tdclass=\"txt_2\">(.*?)</td>";//工作地点
160                 string address = Regex.Match(body, basicInfoRegexStr2).Value;
161                 info.Address = string.IsNullOrEmpty(address) ? "" : address.Substring(address.IndexOf("\">") + 2, address.LastIndexOf("</td>") - address.IndexOf("\">") - 2);
162 
163                 string basicInfoRegexStr3 = "公司性质:</strong>&nbsp;&nbsp;(.*?)<br><br><strong>";//公司性质
164                 string nature = Regex.Match(body, basicInfoRegexStr3).Value;
165                 if (string.IsNullOrEmpty(nature))
166                 {
167                     basicInfoRegexStr3 = "公司行业:</strong>&nbsp;&nbsp;(.*?)<br><br><strong>";
168                     nature = Regex.Match(body, basicInfoRegexStr3).Value;
169                 }
170                 info.Nature = string.IsNullOrEmpty(nature) ? "" : nature.Substring(26, nature.IndexOf("<br>") - 26);//公司性质
171 
172                 string basicInfoRegexStr4 = "公司规模:</strong>&nbsp;&nbsp;(.*?)</td>";//公司规模
173                 string scale = Regex.Match(body, basicInfoRegexStr4).Value;
174                 info.Scale = string.IsNullOrEmpty(scale) ? "" : scale.Substring(26, scale.IndexOf("</td>") - 26);
175 
176                 string basicInfoRegexStr5 = "工作年限:</td><tdclass=\"txt_2\">(.*?)</td>";//工作经验
177                 string experience = Regex.Match(body, basicInfoRegexStr5).Value;
178                 info.Experience = string.IsNullOrEmpty(experience) ? "" : experience.Substring(experience.IndexOf("\">") + 2, experience.LastIndexOf("</td>") - experience.IndexOf("\">") - 2);
179 
180                 string basicInfoRegexStr6 = "学&nbsp;&nbsp;&nbsp;&nbsp;历:</td><tdclass=\"txt_2\">(.*?)</td>";//学历
181                 string education = Regex.Match(body, basicInfoRegexStr6).Value;
182                 info.Education = string.IsNullOrEmpty(education) ? "" : education.Substring(education.IndexOf("\">") + 2, education.LastIndexOf("</td>") - education.IndexOf("\">") - 2);
183 
184                 string basicInfoRegexStr7 = "薪水范围:</td><tdclass=\"txt_2\">(.*?)</td>";//月薪
185                 string salary = Regex.Match(body, basicInfoRegexStr7).Value;
186                 info.Salary = string.IsNullOrEmpty(salary) ? "" : salary.Substring(salary.IndexOf("\">") + 2, salary.LastIndexOf("</td>") - salary.IndexOf("\">") - 2); 
187 
188                 string basicInfoRegexStr8 = "发布日期:</td><tdclass=\"txt_2\">(.*?)</td>";//发布时间
189                 string time = Regex.Match(body, basicInfoRegexStr8).Value;
190                 info.Time = string.IsNullOrEmpty(time) ? "" : time.Substring(time.IndexOf("\">") + 2, time.LastIndexOf("</td>") - time.IndexOf("\">") - 2); ;
191 
192                 if (GetJobEnd != null)
193                 {
194                     GetJobEnd(pageStr, info);
195                 }
196             }
197             catch (Exception exMsg)
198             {
199                 throw new Exception(exMsg.Message);
200             }
201         }
202     }

        以上这个类的作用是分别根据网址获取HTML内容,再根据正则表达式获取招聘相关信息,再通过函数截取相关字段的信息,再组装到前台界面,实现数据的显示,这个里面有一个逻辑就是动态每一条招聘信息的连接,再根据连接去获取HTML信息,相当于这中间有两层解析XML的过程。

2.智联招聘

       智联招聘是我自己每次找工作的备选项,每次把前程无忧上的所有招聘信息全部看完后,就会在智联招聘上浏览下,感觉还挺不错的,不知各位园友有没有试下,不过会有很多与前程无忧是重复的招聘信息,所以还得靠自己去区分。

       下面介绍实现逻辑:

  1     public class JobFromZhiLian : IJob
  2     {
  3         #region 私有字段
  4         private string url = @"http://sou.zhaopin.com/Jobs/SearchResult.ashx?";
  5         /// <summary>
  6         /// 工作地点
  7         /// </summary>
  8         private string workAddress;
  9         /// <summary>
 10         /// 关键词
 11         /// </summary>
 12         private string keyWord;
 13         /// <summary>
 14         /// 工资范围
 15         /// </summary>
 16         private string upperSalary;
 17         /// <summary>
 18         /// 工资范围
 19         /// </summary>
 20         private string lowerSalary;
 21         /// <summary>
 22         /// 包含词
 23         /// </summary>
 24         private string mustKey;
 25         #endregion
 26 
 27         public JobFromZhiLian(string workAddress, string keyWord, string upperSalary, string lowerSalary, string mustKey)
 28         {
 29             this.workAddress = workAddress;
 30             this.keyWord = keyWord;
 31             this.upperSalary = upperSalary;
 32             this.lowerSalary = lowerSalary;
 33             this.mustKey = mustKey;
 34         }
 35 
 36         public event GetJobEndEventHandler GetJobEnd;
 37         public void GetJobInfoList()
 38         {
 39             try
 40             {
 41                 StringBuilder condition = new StringBuilder();
 42                 workAddress = HttpUtility.UrlEncode(workAddress, Encoding.GetEncoding("utf-8"));
 43                 condition.Append("jl=" + workAddress);
 44                 if (!string.IsNullOrEmpty(keyWord))
 45                 {
 46                     keyWord = HttpUtility.UrlEncode(keyWord, Encoding.GetEncoding("utf-8"));
 47                     condition.Append("&kw=" + keyWord);
 48                 }
 49                 condition.Append("&sm=1");
 50                 if (!string.IsNullOrEmpty(upperSalary))
 51                 {
 52                     condition.Append("&sf=" + upperSalary);
 53                 }
 54                 if (!string.IsNullOrEmpty(lowerSalary))
 55                 {
 56                     condition.Append("&st=" + lowerSalary);
 57                 }
 58 
 59                 url = url + condition.ToString();
 60                 string html = GetHtmlCode.GetByget(url, "utf-8");
 61                 GetJobInfoFromPage(html);
 62 
 63                 //页面数量
 64                 string pageCountRegexStr = "(?<=onkeypress=\"zlapply.searchjob.enter2Page\\(this,event,)\\d+";
 65                 Regex pageCountRegex = new Regex(pageCountRegexStr);
 66                 string pageCountStr = pageCountRegex.Match(html).Groups[0].Value;
 67                 int pageCount = 0;
 68                 int.TryParse(pageCountStr, out pageCount);
 69 
 70                 for (int i = 2; i <= pageCount; i++)
 71                 {
 72                     string url0 = url + string.Format("&p={0}", i);
 73                     html = GetHtmlCode.GetByget(url0, "utf-8");
 74                     GetJobInfoFromPage(html);
 75                 }
 76                 if (GetJobEnd != null)
 77                 {
 78                     GetJobEnd(null, null);
 79                 }
 80             }
 81             catch (Exception exMsg)
 82             {
 83                 throw new Exception(exMsg.Message);
 84             }
 85         }
 86 
 87 
 88         // 正则表达式过滤:正则表达式,要替换成的文本
 89         private static readonly string[][] Filters =
 90         {
 91             new[] { @"(?is)<script.*?>.*?</script>", "" },
 92             new[] { @"(?is)<style.*?>.*?</style>", "" },
 93             new[] { @"(?is)<!--.*?-->", "" }    // 过滤Html代码中的注释
 94         };
 95 
 96         private void GetJobInfoFromPage( string pageStr)
 97         {
 98             try
 99             {
100                 JobInfo info = new JobInfo();
101                 //--
102                 if (string.IsNullOrEmpty(pageStr))
103                 {
104                     return;
105                 }
106                 //--
107                 pageStr = pageStr.Replace("\r\n", "");//替换换行符
108                 // 获取html,body标签内容
109                 string body = string.Empty;
110                 string bodyFilter = @"(?is)<body.*?</body>";
111                 Match m = Regex.Match(pageStr, bodyFilter);
112                 if (m.Success)
113                 {
114                     body = m.ToString().Replace("<tr >", "<tr>").Replace("\r\n", "");
115                 }
116                 // 过滤样式,脚本等不相干标签
117                 foreach (var filter in Filters)
118                 {
119                     body = Regex.Replace(body, filter[0], filter[1]);
120                 }
121                 ////--
122                 //if (!string.IsNullOrEmpty(mustKey) && !body.Contains(mustKey))
123                 //{
124                 //    return;
125                 //}
126                 body = Regex.Replace(body, "\\s", "");
127                 bodyFilter = "(?is)<divclass=\"newlist_list_content\"id=\"newlist_list_content_table\">.*?</dd></dl></div></div></div>";
128                 Match m1 = Regex.Match(body, bodyFilter);
129                 if (m1.Success)
130                 {
131                     body = m1.ToString();
132                 }
133 
134 
135 
136 
137                 //info.Url = xurl;
138 
139                 if (GetJobEnd != null)
140                 {
141                     GetJobEnd(pageStr, info);
142                 }
143 
144                 //pageStr = Regex.Replace(pageStr, "\\s|&nbsp;|<br>|<strong>|</strong>|<b>|</b>", "");
145                 ////职位所有信息
146                 //string jobInfoRegexStr = "(?<=<tableclass=\"search-result-tab\">)[\\S\\s]+?(?=</table>)";
147                 //Regex jobInfoRegex = new Regex(jobInfoRegexStr);
148                 //MatchCollection jobInfoMC = jobInfoRegex.Matches(pageStr);
149                 //foreach (Match m in jobInfoMC)
150                 //{
151                 //    if (!string.IsNullOrEmpty(mustKey) && !m.Value.Contains(mustKey))
152                 //    {
153                 //        return;
154                 //    }
155 
156                 //    JobInfo info = new JobInfo();
157 
158                 //    //职位名称,url和公司名称
159                 //    string basicInfoRegexStr = "(?<=<ahref=\")([\\w.:+?()/%=#&]+)\"target=\"_blank\".*?>([\\s\\S]+?)(?=</a>)";
160                 //    //地点、公司性质、公司规模、经验、学历、职位月薪
161                 //    string basicInfoRegexStr0 = "(?<=地点:)[-/\\w]+(?=</span>)";
162                 //    string basicInfoRegexStr1 = "(?<=公司性质:)[-/\\w]+(?=</span>)";
163                 //    string basicInfoRegexStr2 = "(?<=公司规模:)[-/\\w]+(?=</span>)";
164                 //    string basicInfoRegexStr3 = "(?<=经验:)[-/\\w]+(?=</span>)";
165                 //    string basicInfoRegexStr4 = "(?<=学历:)[-/\\w]+(?=</span>)";
166                 //    string basicInfoRegexStr5 = "(?<=职位月薪:)[-/\\w]+(?=</span>)";
167                 //    //发布时间
168                 //    string timeInfoRegexStr = "(?<=releasetime\">)\\d{1,2}-\\d{1,2}-\\d{1,2}";
169 
170                 //    Regex basicInfoRegex = new Regex(basicInfoRegexStr);
171                 //    MatchCollection basicInfoMC = basicInfoRegex.Matches(m.Value);
172                 //    info.Url = basicInfoMC[0].Groups[1].Value;
173                 //    info.Position = basicInfoMC[0].Groups[2].Value;
174                 //    info.Company = basicInfoMC[1].Groups[2].Value;
175                 //    Regex basicInfoRegex0 = new Regex(basicInfoRegexStr0);
176                 //    info.Address = new Regex(basicInfoRegexStr0).Match(m.Value).Value;
177                 //    info.Nature = new Regex(basicInfoRegexStr1).Match(m.Value).Value;
178                 //    info.Scale = new Regex(basicInfoRegexStr2).Match(m.Value).Value;
179                 //    info.Experience = new Regex(basicInfoRegexStr3).Match(m.Value).Value;
180                 //    info.Education = new Regex(basicInfoRegexStr4).Match(m.Value).Value;
181                 //    info.Salary = new Regex(basicInfoRegexStr5).Match(m.Value).Value;
182                 //    Regex timeInfoRegex = new Regex(timeInfoRegexStr);
183                 //    info.Time = timeInfoRegex.Match(m.Value).Value;
184 
185 
186                 //    if (GetJobEnd != null)
187                 //    {
188                 //        GetJobEnd(pageStr, info);
189                 //    }
190                 //}
191             }
192             catch (Exception exMsg)
193             {
194                 throw new Exception(exMsg.Message);
195             }
196         }
197     }

       以上为智联招聘解析HTML相关类,以上逻辑中正则表达式还在完善中,还未完全实现成功,正则表达式还有问题。

3.猎聘网

        猎聘网也是最近一两年才兴起的,這个网站上基本上都是很多猎头发布的信息,开的工资大多是都是十多二十万年薪的岗位,只要你具备這个实力可以去這个网站看看,应该会有所收获的,不过這个网站也有部分企业自己发布的招聘信息,如果前面两个网站都没有看到自己满意的求职信息,那么這个网站也可以是自己求职的一个补充,不知各位博友是不是支持我这种观点。

       下面介绍实现逻辑:

  1     public class JobFromLiePin : IJob
  2     {
  3         #region * 私有字段
  4         private string url = @"http://www.liepin.com/zhaopin/?";
  5 
  6         //基本信息
  7         private string basicInfoRegexStr = "<a title=[\\s\\S]+?</a>";
  8         
  9         /// <summary>
 10         /// 工作地点
 11         /// </summary>
 12         private string workAddress;
 13         /// <summary>
 14         /// 工作地点ID
 15         /// </summary>
 16         private string workAddressId;
 17         /// <summary>
 18         /// 关键词
 19         /// </summary>
 20         private string keyWord;
 21         /// <summary>
 22         /// 包含词
 23         /// </summary>
 24         private string mustKey;
 25         #endregion
 26 
 27         public JobFromLiePin(string workAddress, string workAddressId, string keyWord, string mustKey)
 28         {
 29             this.workAddress = workAddress;
 30             this.workAddressId = workAddressId;
 31             this.keyWord = keyWord;
 32             this.mustKey = mustKey;
 33         }
 34 
 35         public event GetJobEndEventHandler GetJobEnd;
 36         public void GetJobInfoList()
 37         {
 38             try
 39             {
 40                 StringBuilder condition = new StringBuilder();
 41                 condition.AppendFormat("dqs={0}", workAddressId);
 42                 condition.Append("&searchField=3");
 43                 if (!string.IsNullOrEmpty(keyWord))
 44                 {
 45                     keyWord = HttpUtility.UrlEncode(keyWord, Encoding.GetEncoding("utf-8"));
 46                     condition.Append("&key=" + keyWord);
 47                 }
 48                 condition.Append("&pubTime=30");
 49                 string xurl = string.Empty;
 50                 for (int i = 0; i < 100; i++)
 51                 {
 52                     if (i > 0)
 53                     {
 54                         xurl = url + condition.ToString() + "&curPage=" + i;
 55                     }
 56                     else
 57                     {
 58                         xurl = url + condition.ToString();
 59                     }
 60                     string html = GetHtmlCode.GetByget(xurl, "utf-8");
 61                     if (string.IsNullOrEmpty(html))
 62                     {
 63                         break;
 64                     }
 65                     GetJobInfoFromPage(html);
 66                 }
 67             }
 68             catch (Exception exMsg)
 69             {
 70                 throw new Exception(exMsg.Message);
 71             }
 72         }
 73 
 74         private void GetJobInfoFromPage(string pageStr)
 75         {
 76             try
 77             {
 78                 MatchCollection ms = Regex.Matches(pageStr, basicInfoRegexStr);
 79                 //--url
 80                 string urlRegex = "(?<=href=\")([\\w.:+?()/%=#&]+)";
 81                 //--
 82                 foreach (Match m in ms)
 83                 {
 84                     if (m.Value.Contains(workAddress))
 85                     {
 86                         string url0 = Regex.Match(m.Value, urlRegex).Value;
 87                         GetJobInfoFromUrl(url0);
 88                     }
 89                 }
 90                 if (GetJobEnd != null)
 91                 {
 92                     GetJobEnd(null, null);
 93                 }
 94             }
 95             catch (Exception exMsg)
 96             {
 97                 throw new Exception(exMsg.Message);
 98             }
 99         }
100 
101         // 正则表达式过滤:正则表达式,要替换成的文本
102         private static readonly string[][] Filters =
103         {
104             new[] { @"(?is)<script.*?>.*?</script>", "" },
105             new[] { @"(?is)<style.*?>.*?</style>", "" },
106             new[] { @"(?is)<!--.*?-->", "" },    // 过滤Html代码中的注释
107             new[] { @"(?is)<footer.*?>.*?</footer>",""},
108             //new[] { "(?is)<div class=\"job-require bottom-job-require\">.*?</div></div>",""}
109             new[] { @"(?is)<h3>常用链接:.*?</ul>",""}
110         };
111 
112         private void GetJobInfoFromUrl(string url)
113         {
114             try
115             {
116                 JobInfo info = new JobInfo();
117                 //--
118                 string pageStr = GetHtmlCode.GetByget(url, "utf-8");
119                 if (string.IsNullOrEmpty(pageStr))
120                 {
121                     return;
122                 }
123                 //--
124                 pageStr = pageStr.Replace("\r\n", "");//替换换行符
125                 // 获取html,body标签内容
126                 string body = string.Empty;
127                 string bodyFilter = @"(?is)<body.*?</body>";
128                 Match m = Regex.Match(pageStr, bodyFilter);
129                 if (m.Success)
130                 {
131                     body = m.ToString().Replace("<tr >", "<tr>").Replace("\r\n", "");
132                 }
133                 // 过滤样式,脚本等不相干标签
134                 foreach (var filter in Filters)
135                 {
136                     body = Regex.Replace(body, filter[0], filter[1]);
137                 }
138                 //--
139                 if (!string.IsNullOrEmpty(mustKey) && !body.Contains(mustKey))
140                 {
141                     return;
142                 }
143                 body = Regex.Replace(body, "\\s", "");
144 
145                 info.Url = url;
146 
147                 string basicInfoRegexStr0 = "<h1title=([\\s\\S]+?)>(.*?)</h1>"; //职位名称
148                 string position = Regex.Match(body, basicInfoRegexStr0).Value;
149                 info.Position = string.IsNullOrEmpty(position) ? "" : position.Substring(position.IndexOf(">") + 1, position.IndexOf("</") - position.IndexOf(">") - 1);//职位名称
150 
151                 string basicInfoRegexStr1 = "</h1><h3>(.*?)</h3>";//公司名称
152                 string company = Regex.Match(body, basicInfoRegexStr1).Value;
153                 info.Company = string.IsNullOrEmpty(company) ? "" : company.Substring(company.IndexOf("<h3>") + 4, company.IndexOf("</h3>") - company.IndexOf("<h3>") - 4);//公司名称
154 
155                 string basicInfoRegexStr2 = "<divclass=\"resumeclearfix\"><span>(.*?)</span>";//工作地点
156                 string address = Regex.Match(body, basicInfoRegexStr2).Value;
157                 info.Address = string.IsNullOrEmpty(address) ? "" : address.Substring(address.IndexOf("<span>") + 6, address.IndexOf("</") - address.IndexOf("<span>") - 6);//工作地点
158 
159                 string basicInfoRegexStr3 = "<li><span>企业性质:</span>(.*?)</li>";//公司性质
160                 string nature = Regex.Match(body, basicInfoRegexStr3).Value;
161                 info.Nature = string.IsNullOrEmpty(nature) ? "" : nature.Substring(nature.IndexOf("</span>") + 7, nature.IndexOf("</li>") - nature.IndexOf("</span>") - 7);//公司性质
162 
163                 if (string.IsNullOrEmpty(info.Nature))
164                 {
165                     string basicInfoRegexStr3_1 = "<br><span>性质:</span>(.*?)<br>";
166                     string nature_1 = Regex.Match(body, basicInfoRegexStr3_1).Value;
167                     info.Nature = string.IsNullOrEmpty(nature_1) ? "" : nature_1.Substring(nature_1.IndexOf("</span>") + 7, nature_1.LastIndexOf("<br>") - nature_1.IndexOf("</span>") - 7);//公司性质
168                 }
169 
170                 string basicInfoRegexStr4 = "<li><span>企业规模:</span>(.*?)</li>";//公司规模
171                 string scale = Regex.Match(body, basicInfoRegexStr4).Value;
172                 info.Scale = string.IsNullOrEmpty(scale) ? "" : scale.Substring(scale.IndexOf("</span>") + 7, scale.IndexOf("</li>") - scale.IndexOf("</span>") - 7);//公司规模
173 
174                 if (string.IsNullOrEmpty(info.Scale))
175                 {
176                     string basicInfoRegexStr4_1 = "<br><span>规模:</span>(.*?)<br>";
177                     string scale_1 = Regex.Match(body, basicInfoRegexStr4_1).Value;
178                     info.Scale = info.Nature = string.IsNullOrEmpty(scale_1) ? "" : scale_1.Substring(scale_1.IndexOf("</span>") + 7, scale_1.LastIndexOf("<br>") - scale_1.IndexOf("</span>") - 7);//公司规模
179                 }
180 
181                 string basicInfoRegexStr5 = "<spanclass=\"noborder\">(.*?)</span>";//工作经验
182                 string experience = Regex.Match(body, basicInfoRegexStr5).Value;
183                 info.Experience = string.IsNullOrEmpty(experience) ? "" : experience.Substring(experience.IndexOf(">") + 1, experience.IndexOf("</") - experience.IndexOf(">") - 1);//工作经验
184 
185                 string basicInfoRegexStr6 = "</span><span>(.*?)</span><spanclass=\"noborder\">";//最低学历
186                 string education = Regex.Match(body, basicInfoRegexStr6).Value;
187                 info.Education = string.IsNullOrEmpty(education) ? "" : education.Substring(education.IndexOf("<span>") + 6, education.IndexOf("</span><spanclass=") - education.IndexOf("<span>") - 6);//最低学历
188 
189                 string basicInfoRegexStr7 = "<pclass=\"job-main-title\">(.*?)<";//月薪
190                 string salary = Regex.Match(body, basicInfoRegexStr7).Value;
191                 info.Salary = string.IsNullOrEmpty(salary) ? "" : salary.Substring(salary.IndexOf(">") + 1, salary.LastIndexOf("<") - salary.IndexOf(">") - 1);//月薪
192 
193                 string timeInfoRegexStr = "<pclass=\"release-time\">发布时间:<em>(.*?)</em></p>";//发布时间
194                 string time = Regex.Match(body, timeInfoRegexStr).Value;
195                 info.Time = string.IsNullOrEmpty(time) ? "" : time.Substring(time.IndexOf("<em>") + 4, time.IndexOf("</em>") - time.IndexOf("<em>") - 4);//发布时间
196 
197                 if (GetJobEnd != null)
198                 {
199                     GetJobEnd(pageStr, info);
200                 }
201             }
202             catch (Exception exMsg)
203             {
204                 throw new Exception(exMsg.Message);
205             }
206         }
207     }

以上为解析猎聘网招聘信息的类。以下为猎聘网解析出的数据:

 

后记

        个人在整个开发过程中遇到最大的难点还是利用正则表达式提取HTML相关字段的信息,这个对于我来说是最大的难题,因为我对正则表达式不是很熟,所以在这个过程是非常痛苦的,也许现在用到的正则表达式不是最好的,还望园友提出更好的解决方案,或则指出正则表达式的问题,这个程序最大的难题就在这里,如有兴趣一起加QQ群:(186841119),参与谈论和学习交流,源码也会在这个群空间共享。

 

posted @ 2014-11-30 19:33  气宇轩昂_2017  阅读(17165)  评论(139编辑  收藏  举报