用Python抓取携程网机票信息 过程纪实(下篇)

上篇回顾

上篇中我们使用Python对json格式的航班数据进行了处理,因此只要能够构造出正确的URL,就可以实现对航班信息的查询。而构造URL时有三个参数需要查看js代码才可以搞定,这也正是本篇博客要处理的内容。

从主页面找切入点

无论是静态页面还是动态页面,最终获得的数据都要交给主页面来显示,因此从主页面中一定能得到线索。下面看一下主页面对应的html文件。
主页面
切换右侧选项到“消息头”,可以看到该网页的请求网址和浏览器中看到的请求网址相同,可以证明它确实是主页面。
主页面验证

r值的获取

找到了主页面,下面找一下主页面中涉及到那三个参数的代码。为了参照方便,下面贴一下主页面的html代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Cache-Control" content="no-transform " />
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<meta name="description" content="携程旅行网为您提供哈尔滨到上海特价机票以及哈尔滨到上海航班查询。携程旅行网于2003年在美国纳斯达克上市,拥有覆盖全国的服务网络。提供国内国际各大航空公司的航线航班,安全支付值得信赖,是您网上订购哈尔滨到上海机票的首选。免费咨询800-820-6666。" />
<meta name="keywords" content="哈尔滨到上海特价,哈尔滨到上海机票预订,哈尔滨到上海航班查询,携程机票" />
<title>哈尔滨到上海机票预订 - 哈尔滨到上海特价机票 - 哈尔滨到上海航班查询预订 - 携程国内机票预订</title>

<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<link rel="dns-prefetch" href="//webresource.c-ctrip.com" />
<link rel="dns-prefetch" href="//pic.c-ctrip.com" />
<link rel="dns-prefetch" href="//images3.c-ctrip.com" />
<link rel="dns-prefetch" href="//crm.ws.ctrip.com" />
<link rel="dns-prefetch" href="//s.c-ctrip.com" />
<link rel="dns-prefetch" href="//www.google-analytics.com" />
<link rel="canonical" href="http://flights.ctrip.com/booking/hrb-sha-day-1.html"/>
<link href="http://webresource.c-ctrip.com/ResFlightOnline/R1/Booking/css/fltdomestic111027/searchresult_v2.1.css?ReleaseNo=CR_2016_05_10_19_57_18" type="text/css" rel="stylesheet" />

</head>
<body>

<script type="text/javascript">
var url = "http://flights.ctrip.com/domesticsearch/search/SearchFirstRouteFlights?DCity1=HRB&ACity1=SHA&SearchType=S&DDate1=2016-05-13&IsNearAirportRecommond=0&CK=36B05DD175F36398546F66CA5EFD07DE";
var _searchCount_c = 0;

function ajaxRequest(n,t){var i=null,e,f,l,o,s,r,c,u,h;if(typeof XMLHttpRequest!="undefined")i=new XMLHttpRequest;else if(typeof ActiveXObject!="undefined"){if(typeof arguments.callee.aciveXString!="string")for(e=["MSXML2.XMLHttp.6.0","MSXML2.XMLHttp.3.0","MSXML2.XMLHttp"],f=0,l=e.length;f<l;f++)try{i=new ActiveXObject(e[f]);arguments.callee.activeXString=e[f];break}catch(a){}i==null&&(i=new ActiveXObject(arguments.callee.activeXString))}i.onreadystatechange=function(){try{if(i.readyState==4)if(i.status>=200&&i.status<300||i.status==304){var r=eval("("+i.responseText+")");if(_searchCount_c==0&&r&&r.Error&&r.Error.Code==104&&(r.Error.Message==""||!r.Error.Message)){_searchCount_c++;setTimeout(function(){var i=n.split("&");i.pop();ajaxRequest(i.join("&")+"&rt="+Math.random()*1e3,t)},1e3);return}jsonCallback.done(r)}else i.status!=0&&jsonCallback.onError()}catch(u){jsonCallback.onError()}};window.location.hash&&(o=window.location.hash.match(/DDate1=\d{4}-\d{2}-\d{2}/),o&&o.length>0&&(n=n.replace(/DDate1=(\d{4}-\d{2}-\d{2})/ig,o[0])),s=window.location.hash.match(/DDate2=\d{4}-\d{2}-\d{2}/),s&&s.length>0&&(n=n.replace(/DDate2=(\d{4}-\d{2}-\d{2})/ig,s[0])));r=n.replace(/^[\s\xA0]+|[\s\xA0]+$/g,"");(r.indexOf("ClassType=CF")==-1||r.indexOf("ClassType=&")!=-1)&&(r+=getStorage("FD_SearchPage_onlyCf")=="CF"?"&ClassType=CF":"");_searchCount_c>0&&(c=t.split(".")[1],t="0."+c.substring(1,c.length-1));u=r.split("&");h=r.indexOf("rk=")>=0||r.indexOf("rt=")>=0?u.splice(u.length-2,1)[0]:u.pop();u.push("CK=");h=h.split("=")[1];var fn=(function(u,r,k,t){var M48=1,N48M=1;M48=M48-=parseInt(Math.log(8) * 0xa);M48=M48-=parseInt(Math.sin(8) * 0xa);if(M48<0)M48=-M48; while(M48>30)M48=M48%10;N48M=N48M+=parseInt(Math.exp(6) * 0xa);N48M=N48M+=parseInt(Math.sin(6) * 0xa);N48M=N48M+=parseInt(Math.log(6) * 0xa);if(N48M<0)N48M=-N48M; while(N48M>30)N48M=N48M%10;(function(r,u,x,y,t,k){if(!window.location.href){return;}var l=r.split(''); var c=l.splice(y,1);l.splice(x,0,c);t.open('GET', u.join('&')+l.join('') + '&r=' + k, !0);t.send(null);})(r,u,M48,N48M,t,k)});fn(u,h,t,i)}var jsonCallback={isError:!1,isReady:!1,data:{},readyList:[],errorList:[],ready:function(n){this.isReady==!1?this.readyList.push(n):n(this.data)},done:function(n){this.isReady=!0;this.data=n;for(var t=0;this.readyList[t];)this.readyList[t](n),t++},error:function(n){this.isError==!1?this.errorList.push(n):n()},onError:function(){this.isError=!0;for(var n=0;this.errorList[n];)this.errorList[n](),n++}},getStorage=function(n){var i,r,t;try{if(i="{}",window.localStorage)i=localStorage.getItem("jStorage");else if(window.globalStorage)i=window.globalStorage[window.location.hostname];else{r=document.head||document.getElementsByTagName("head")[0];t=document.createElement("link");t.style.behavior="url(#default#userData)";r.appendChild(t);try{t.load("jStorage")}catch(u){t.setAttribute("jStorage","{}");t.save("jStorage");t.load("jStorage")}i=t.getAttribute("jStorage")||"{}";r.removeChild(t)}return!i||i=="{}"?"":eval("("+i+")")[n]}catch(f){return""}}



var searchRouteIndex = "0";
ajaxRequest(url + '&rk=' + Math.random()*10+'071048','0.1735286780048523741211');
</script>


<input type="hidden" id="CorrelationId" name="CorrelationId" value="3480328985819705290"/><link href="http://webresource.c-ctrip.com/ResCRMOnline/R1/pageheader/css/PageHeader_v2.css?temp=20160510" rel="stylesheet" />

<div class="cui_hd_cont">
<div id="cui_hd" class="cui_hd"><input type="hidden" id="_searchboxNo_" value="ws_www20140409"><input type="hidden" id="_newHeaderFlag_" value="true"><div class="ctriplogo"><a href="http://www.ctrip.com" title="携程旅行网">携程旅行网</a></div>
<div class="nav-bar">
<ul class="language">
<li><a href="http://www.ctrip.com/" rel="nofollow" class="selected" id="cui_lang_cn" onmouseover="this.className= 'selected language_current';document.getElementById('cui_lang_list').parentNode.style.display='block';" onmouseout="this.className= 'selected';document.getElementById('cui_lang_list').parentNode.style.display='none';"><span><em class="ico-langgb"></em>简体中文<b class="arrow"></b></span></a><div class="language_wrap drowndrop" style="display: none;" onmouseover="document.getElementById('cui_lang_cn').className= 'selected language_current';this.style.display='block';" onmouseout="document.getElementById('cui_lang_cn').className= 'selected';this.style.display='none';">
<ul class="language_list" id="cui_lang_list">
<li class="first"><a id="ctrip_hk" class="language_hk" href="http://www.ctrip.com.hk?language=HK#from=click_hk">香港(繁体)</a></li>
<li><a id="ctrip_hk_en" class="language_hk" href="http://www.ctrip.com.hk/?language=EN#from=click_hken">Hong Kong(English)</a></li>
<li><a id="ctrip_eng" class="language_en" href="http://english.ctrip.com/#from=click_en">English</a></li>
<li><a id="ctrip_jap" class="language_jap" href="http://jp.ctrip.com/#from=click_jp">日语版</a></li>
<li><a id="ctrip_korea" class="language_korea" href="http://www.ctrip.co.kr/#from=click_kr">韩语版</a></li>
<li><a id="ctrip_sg" class="language_sg" href="http://www.ctrip.sg/#from=click_sg">Singapore</a></li>
<li><a id="ctrip_id" class="language_id" href="http://www.ctrip.co.id/#from=click_id">Bahasa Indonesia</a></li>
<li><a id="ctrip_my" class="language_my" href="http://www.ctrip.my/#from=click_my">Bahasa Malaysia</a></li>
<li><a id="ctrip_th" class="language_th" href="http://www.ctrip.co.th/#from=click_th">&#xE20;&#xE32;&#xE29;&#xE32;&#xE44;&#xE17;&#xE22;</a></li>
<li><a id="ctrip_fr" class="language_fr" href="http://fr.ctrip.com/#from=click_fr">Fran&#xE7;ais</a></li>
<li><a id="ctrip_de" class="language_de" href="http://de.ctrip.com/#from=click_de">Deutsch</a></li>
<li><a id="ctrip_es" class="language_es" href="http://es.ctrip.com/#from=click_es">Espa&#xF1;ol</a></li>
<li class="last"><a id="ctrip_ru" class="language_ru" href="http://ru.ctrip.com/#from=click_ru">Русский</a></li>
</ul>
</div>
</li>
</ul>
<ul class="cui_service">
<li><a target="_blank" rel="nofollow" href="http://kefu.ctrip.com">客服中心
</a></li>
</ul>
<ul class="cui_service service_1180">
<li><a href="#" class="service_tel" id="cui_service_cn" onmouseover="this.className= 'service_tel service_current';document.getElementById('cui_service_tel_list').style.display='block';" onmouseout="this.className= 'service_tel';document.getElementById('cui_service_tel_list').style.display='none';"><span title="免境内长话费">
国内:<em class="service_telnum">1010-6666</em><b class="arrow"></b></span></a><div class="service_wrap drowndrop" id="cui_service_tel_list" onmouseover="document.getElementById('cui_service_cn').className= 'service_tel service_current';this.style.display='block';" onmouseout="document.getElementById('cui_service_cn').className= 'service_tel';document.getElementById('cui_service_tel_list').style.display='none';">
<ul class="service_list">
<li>
<dl>
<dd><span style="color:#999">(或)</span><em>400-820-6666</em></dd>
<dd>
香港:<em>+852-3069-9966</em></dd>
<dd>
海外:<em>+86-21-3406-4888</em></dd>
</dl>
</li>
</ul>
</div>
</li>
</ul>
<ul class="cui_wireless" id="head_float_level">
<li><a href="http://app.ctrip.com" class="wireless wireless_link" target="_blank" rel="nofollow" id="linkid"><i class="cui_ico_app"></i></a><div id="head_float_box_app" class="cui_wireless_box" style="display: none;"><i class="cui_ico_chatarrow" style="right:40px;"></i><div class="cui_wireless_inbox">
<dl class="cui_wireless_type">
<dt>手机扫码快速下载</dt>
<dd><img src="//pic.c-ctrip.com/platform/online/home/er_ctrip_app.jpg" alt=""></dd>
</dl><a href="http://app.ctrip.com" class="cui_link_app">携程旅行手机版<i>&gt;</i></a></div>
</div>
</li>
<li><a href="##" class="wireless wireless_nolink" id="nolinkid"><i class="cui_ico_wechat"></i></a><div id="head_float_box_weixin" class="cui_wireless_box" style="display: none;"><i class="cui_ico_chatarrow"></i><div class="cui_wireless_inbox">
<dl class="cui_wireless_type">
<dt>携程订阅号:helloctrip</dt>
<dd><img src="//pic.c-ctrip.com/platform/online/home/er_ctrip_wechat.jpg" alt=""></dd>
</dl>
扫一扫,领旅行福利
</div>
</div>
</li>
</ul>
</div>
</div>
</div>
<div class="" id="ctrip_doodle"></div>
<div id="cui_nav">
<div class="base_nav">
<ul id="cui_nav_ul" class="cui_nav cui_content">
<li id="cui_nav_home"><a titledec="首页" class="cui_nav_non" id="c_ph_hp" href="http://www.ctrip.com">首页</a></li>
<li class="divider"></li>
<li id="cui_nav_hotel"><a id="a_hotelLink" titledec="酒店" class="cui_nav_hotel cui_nav_has" href="http://hotels.ctrip.com">酒店
<i class="cui_ico_triangle"></i><span class="point"></span></a><div class="cui_subnav_wrap">
<ul class="cui_sub_nav" id="div_hotel">
<li><a titledec="国内酒店" id="c_ph_hotel_h" href="http://hotels.ctrip.com">国内酒店
</a></li>
<li class="divider"></li>
<li><a titledec="海外酒店" id="c_ph_hoteli_h" href="http://hotels.ctrip.com/international/">海外酒店
</a></li>
<li class="divider"></li>
<li><a titledec="海外民宿+短租" id="c_ph_apartment_h" href="http://hotels.ctrip.com/apartment">海外民宿+短租<span class="label-en"><em>NEW</em><i class="triangle"></i></span></a></li>
<li class="divider"></li>
<li><a titledec="团购" id="c_ph_tuan_h" href="http://tuan.ctrip.com">团购
</a></li>
<li class="divider"></li>
<li><a titledec="特价酒店" id="c_ph_hotsale_h" href="http://hotels.ctrip.com/hotsale">特价酒店
</a></li>
<li class="divider"></li>
<li><a rel="nofollow" titledec="途家公寓" id="c_ph_tujia_h" href="http://hotels.ctrip.com/tujia/">途家公寓
</a></li>
<li class="divider"></li>
<li><a titledec="酒店+景点" id="c_ph_taocanj_v" href="http://taocan.ctrip.com/sh/HotelDefault.aspx?fluxentrance=10405&amp;FromMenu=hotel">酒店+景点
</a></li>
<li class="divider"></li>
<li><a titledec="客栈民宿" id="c_ph_inn_h" href="http://inn.ctrip.com">客栈民宿
</a></li>
<li class="divider"></li>
<li><a titledec="会场+团队房" id="c_ph_meeting_h" href="http://meeting.ctrip.com">会场+团队房
</a></li>
</ul><a class="cui_ico_order" rel="nofollow" href="http://my.ctrip.com/Home/Order/HotelOrderList.aspx"><i class="cui-icon-hotel"></i>酒店订单 &gt;
</a></div>
</li>
<li class="divider"></li>
<li id="cui_nav_vac"><a id="a_vacationLink" titledec="旅游" class="cui_nav_vac cui_nav_has" href="http://vacations.ctrip.com">旅游
<i class="cui_ico_triangle"></i><span class="point"></span></a><div class="cui_subnav_wrap">
<ul class="cui_sub_nav" id="div_vacation">
<li><a titledec="旅游首页" id="c_ph_vacations_v" href="http://vacations.ctrip.com">旅游首页
</a></li>
<li class="divider"></li>
<li><a titledec="周末游" id="c_ph_around_v" href="http://you.ctrip.com/around/">周末游
</a></li>
<li class="divider"></li>
<li><a titledec="跟团游" id="c_ph_vacationsd_v" href="http://vacations.ctrip.com/grouptravel/">跟团游
</a></li>
<li class="divider"></li>
<li><a titledec="自由行" id="c_ph_taocan_v" href="http://taocan.ctrip.com">自由行
</a></li>
<li class="divider"></li>
<li><a titledec="邮轮" id="c_ph_cruise_v" href="http://cruise.ctrip.com/">邮轮
</a></li>
<li class="divider"></li>
<li><a titledec="酒店+景点" id="c_ph_taocanj_v" href="http://taocan.ctrip.com/sh/">酒店+景点<span class="label-cn"><em>自驾游</em><i class="triangle"></i></span></a></li>
<li class="divider"></li>
<li><a titledec="当地玩乐" id="c_ph_huodong_v" href="http://huodong.ctrip.com/">当地玩乐
</a></li>
<li class="divider"></li>
<li><a titledec="主题游" id="c_ph_zhutiyou_v" href="http://vacations.ctrip.com/themetravel/">主题游<span class="label-en"><em>NEW</em><i class="triangle"></i></span></a></li>
<li class="divider"></li>
<li><a titledec="定制&#x2022;包团" id="c_ph_baotuan_v" href="http://vacations.ctrip.com/dingzhi">定制&#x2022;包团
</a></li>
<li class="divider"></li>
<li><a titledec="游学" id="c_ph_youxue_v" href="http://vacations.ctrip.com/youxue">游学
</a></li>
<li class="divider"></li>
<li><a titledec="签证" id="c_ph_visa_v" href="http://vacations.ctrip.com/visa">签证
</a></li>
<li class="divider"></li>
<li><a titledec="企业会奖" id="c_ph_mice_v" href="http://vacations.ctrip.com/mice">企业会奖
</a></li>
<li class="divider"></li>
<li><a titledec="顶级游" href="http://www.hhtravel.com/#ctm_ref=hh_ct_thp_nav" target="_blank" rel="nofollow" id="c_ph_hh_v">顶级游</a></li>
<li class="divider"></li>
<li><a titledec="爱玩户外" id="c_ph_golf_v" href="http://pages.ctrip.com/ctt/marketing/">爱玩户外
</a></li>
<li class="divider"></li>
<li><a titledec="保险" id="c_ph_insurance_v" href="http://vacations.ctrip.com/insurance">保险
</a></li>
<li class="divider"></li>
<li><a titledec="特卖汇" id="c_ph_deals_v" href="http://vacations.ctrip.com/deals">特卖汇
</a></li>
</ul><a class="cui_ico_order" rel="nofollow" href="http://my.ctrip.com/Home/Order/PkgOrderList.aspx"><i class="cui-icon-vacations"></i>旅游订单 &gt;
</a></div>
</li>
<li class="divider"></li>
<li id="cui_nav_flight" class="cui_nav_current"><a id="a_flightLink" titledec="机票" class="cui_nav_flight cui_nav_has" href="http://flights.ctrip.com">机票
<i class="cui_ico_triangle"></i><span class="point"></span></a><div class="cui_subnav_wrap">
<ul id="div_flight" class="cui_sub_nav">
<li><a titledec="国内机票" id="c_ph_flights_f" class="cui_sub_current" href="http://flights.ctrip.com">国内机票
</a></li>
<li class="divider"></li>
<li><a titledec="国际机票" id="c_ph_flightsi_f" href="http://flights.ctrip.com/international/">国际机票
</a></li>
<li class="divider"></li>
<li><a titledec="机+酒" id="c_ph_taocan_f" href="http://taocan.ctrip.com">机+酒
</a></li>
<li class="divider"></li>
<li><a titledec="航班动态" id="c_ph_flightstoolbox_f" href="http://flights.ctrip.com/actualtime">航班动态
</a></li>
<li class="divider"></li>
<li><a rel="nofollow" titledec="值机选座" id="c_ph_bookseat_f" href="http://flights.ctrip.com/domestic/checkinseat/index">值机选座
</a></li>
<li class="divider"></li>
<li><a rel="nofollow" titledec="退票改签" id="c_ph_flightorderlist_f" href="http://my.ctrip.com/Home/Order/FlightOrderList.aspx">退票改签
</a></li>
<li class="divider"></li>
<li><a rel="nofollow" titledec="机场攻略" id="c_ph_airportguides_f" href="http://flights.ctrip.com/booking/airport-guides.html">机场攻略
</a></li>
<li class="divider"></li>
<li><a titledec="机场巴士" id="c_ph_airbus_f" href="http://airbus.ctrip.com#ctm_ref=arb_hp_flt_nang">机场巴士
</a></li>
<li class="divider"></li>
<li><a titledec="公务员通道" id="c_ph_gwytd_f" href="http://flights.ctrip.com/Domestic/Civs">公务员通道<span class="label-en"><em>NEW</em><i class="triangle"></i></span></a></li>
</ul><a class="cui_ico_order" rel="nofollow" href="http://my.ctrip.com/Home/Order/FlightOrderList.aspx"><i class="cui-icon-flight"></i>机票订单 &gt;
</a></div>
</li>
<li class="divider"></li>
<li id="cui_nav_trains"><a titledec="火车" class="cui_nav_has" id="c_ph_train" href="http://trains.ctrip.com">火车
<i class="cui_ico_triangle"></i><span class="point"></span></a><div class="cui_subnav_wrap">
<ul class="cui_sub_nav">
<li><a titledec="国内火车票" id="c_ph_train_t" href="http://trains.ctrip.com">国内火车票
</a></li>
<li class="divider"></li>
<li><a titledec="国际&#x2022;台湾火车票" id="c_ph_traino_t" href="http://rails.ctrip.com">国际&#x2022;台湾火车票
</a></li>
</ul><a class="cui_ico_order" rel="nofollow" href="http://my.ctrip.com/Home/Order/RailwayOrderList.aspx"><i class="cui-icon-train"></i>火车票订单 &gt;
</a></div>
</li>
<li class="divider"></li>
<li id="cui_nav_destination"><a titledec="汽车票" class="cui_nav_has" id="c_ph_bus" href="http://Bus.ctrip.com">汽车票
<i class="cui_ico_triangle"></i><span class="point"></span></a><div class="cui_subnav_wrap">
<ul class="cui_sub_nav">
<li><a titledec="汽车票" id="c_ph_bus_t" href="http://Bus.ctrip.com">汽车票
</a></li>
<li class="divider"></li>
<li><a titledec="机场巴士" id="c_ph_airbus_t" href="http://airbus.ctrip.com#ctm_ref=arb_hp_bus_nang">机场巴士
</a></li>
<li class="divider"></li>
<li><a titledec="船票" id="c_ph_ship_t" href="http://Bus.ctrip.com/ship">船票<span class="label-en"><em>NEW</em><i class="triangle"></i></span></a></li>
</ul><a class="cui_ico_order" rel="nofollow" href="http://my.ctrip.com/Home/Order/QicheOrderlist.aspx"><i class="cui-icon-bus"></i>汽车票订单 &gt;
</a></div>
</li>
<li class="divider"></li>
<li id="cui_nav_car"><a titledec="用车" href="http://car.ctrip.com/#ctm_ref=chp_var_txt" class="cui_nav_hotel cui_nav_has" id="c_ph_car">用车
<i class="cui_ico_triangle"></i><span class="point"></span></a><div class="cui_subnav_wrap">
<ul class="cui_sub_nav">
<li><a titledec="用车首页" id="c_ph_car_c" href="http://car.ctrip.com#ctm_ref=chp_var_txt">用车首页
</a></li>
<li class="divider"></li>
<li><a titledec="国际租车" id="c_ph_hwzj_c" href="http://car.ctrip.com/hwzijia#ctm_ref=chp_var_txt">国际租车<span class="label-cn"><em>特惠</em><i class="triangle"></i></span></a></li>
<li class="divider"></li>
<li><a titledec="国际接送机" id="c_ph_hwdaijia_c" href="http://car.ctrip.com/hwdaijia#ctm_ref=chp_var_txt">国际接送机
</a></li>
<li class="divider"></li>
<li><a titledec="国内租车" id="c_ph_zj_c" href="http://car.ctrip.com/zijia#ctm_ref=chp_var_txt">国内租车
</a></li>
<li class="divider"></li>
<li><a titledec="国内接送机/火车" id="c_ph_daijia_c" href="http://car.ctrip.com/daijia#ctm_ref=chp_var_txt">国内接送机/火车
</a></li>
<li class="divider"></li>
<li><a titledec="日租包车" id="c_ph_rizu_c" href="http://car.ctrip.com/dayweb">日租包车<span class="label-en"><em>NEW</em><i class="triangle"></i></span></a></li>
</ul><a class="cui_ico_order" rel="nofollow" href="http://my.ctrip.com/Home/Order/CarOrderList.aspx"><i class="cui-icon-car"></i>用车订单 &gt;
</a></div>
</li>
<li class="divider"></li>
<li id="cui_nav_ticket"><a titledec="门票" class="cui_nav_ticket cui_nav_has" id="c_ph_piao" href="http://piao.ctrip.com">门票
<i class="cui_ico_triangle"></i><span class="point"></span></a><div class="cui_subnav_wrap">
<ul class="cui_sub_nav">
<li><a titledec="国内门票" id="c_ph_piao_p" href="http://piao.ctrip.com/?clear=t#ctm_ref=tkt_home_tab_inland">国内门票
</a></li>
<li class="divider"></li>
<li><a titledec="海外门票" id="c_ph_piaooversea_p" href="http://piao.ctrip.com/oversea#ctm_ref=tkt_home_tab_oversea">海外门票
</a></li>
<li class="divider"></li>
<li><a titledec="当地玩乐" id="c_ph_huodong_p" href="http://huodong.ctrip.com#ctm_ref=ctr_hp_ttd">当地玩乐<span class="label-en"><em>NEW</em><i class="triangle"></i></span></a></li>
<li class="divider"></li>
<li><a titledec="出境WiFi" id="c_ph_wifi_p" href="http://huodong.ctrip.com/wifi#ctm_ref=ctr_hp_wifi">出境WiFi
</a></li>
<li class="divider"></li>
<li><a titledec="周末游" id="c_ph_around_p" href="http://you.ctrip.com/around#ctm_ref=gs-990123-290801-0-02-M001|0|0">周末游
</a></li>
<li class="divider" style="display:none"></li>
<li><a titledec="迪士尼" id="c_ph_disney_p" style="display:none" href="http://pages.c-ctrip.com/commerce/promote/201603/vacation/disney/online.html">迪士尼
</a></li>
</ul><a class="cui_ico_order" rel="nofollow" href="http://my.ctrip.com/Home/Order/PiaoOrderlist.aspx"><i class="cui-icon-ticket"></i>门票订单 &gt;
</a></div>
</li>
<li class="divider"></li>
<li id="cui_nav_tuan"><a class="cui_nav_has" id="c_ph_tuan" href="http://tuan.ctrip.com">团购
<i class="cui_ico_triangle"></i><span class="point"></span></a><div class="cui_subnav_wrap">
<ul class="cui_sub_nav">
<li><a titledec="团购首页" id="c_ph_tuan_tu" href="http://tuan.ctrip.com">团购首页
</a></li>
<li class="divider"></li>
<li><a titledec="酒店" id="c_ph_tuanhotel_tu" href="http://tuan.ctrip.com/hotel/">酒店
</a></li>
<li class="divider"></li>
<li><a titledec="门票" id="c_ph_tuanticket_tu" href="http://tuan.ctrip.com/ticket/">门票
</a></li>
<li class="divider"></li>
<li><a titledec="旅游" id="c_ph_tuantravel_tu" href="http://tuan.ctrip.com/travel/">旅游
</a></li>
<li class="divider"></li>
<li><a titledec="美食" id="c_ph_tuanlife_tu" href="http://tuan.ctrip.com/life/">美食
</a></li>
</ul><a class="cui_ico_order" rel="nofollow" href="http://my.ctrip.com/Home/Order/GroupOrderList.aspx"><i class="cui-icon-tuan"></i>团购订单 &gt;
</a></div>
</li>
<li class="divider"></li>
<li id="cui_nav_destination01"><a titledec="攻略" class="cui_nav_non" id="c_ph_you" href="http://you.ctrip.com">攻略</a></li>
<li class="divider"></li>
<li id="cui_nav_g"><a titledec="全球购" class="cui_nav_has" id="c_ph_go" href="http://g.ctrip.com">全球购
<i class="cui_ico_triangle"></i><span class="point"></span></a><div class="cui_subnav_wrap">
<ul class="cui_sub_nav" id="div_global">
<li><a titledec="名店购" id="c_ph_mdg_g" href="http://g.ctrip.com">名店购
</a></li>
<li class="divider"></li>
<li><a titledec="退税" id="c_ph_ts_g" href="http://tax.ctrip.com/?bid=2&amp;cid=1&amp;pid=1">退税
</a></li>
<li class="divider"></li>
<li><a titledec="刷卡奖励" id="c_ph_skjl_g" href="http://card.ctrip.com/#ctm_ref=ctr_bid_0_cid_1_pid_1">刷卡奖励
</a></li>
</ul>
</div>
</li>
<li class="divider"></li>
<li id="cui_nav_lpk"><a class="cui_nav_has" id="c_ph_lipin" href="http://lipin.ctrip.com">礼品卡
<i class="cui_ico_triangle"></i><span class="point"></span></a><div class="cui_subnav_wrap">
<ul class="cui_sub_nav">
<li><a titledec="礼品卡" id="c_ph_lipin_l" href="http://lipin.ctrip.com">礼品卡首页
</a></li>
<li class="divider"></li>
<li><a titledec="礼品卡套餐" id="c_ph_xcb_l" href="http://lipin.ctrip.com/xcb">礼品卡套餐
</a></li>
<li class="divider"></li>
<li><a titledec="存款证明" id="c_ph_ckzm_l" href="http://jr.ctrip.com/deposit/deposit/index">存款证明
</a></li>
</ul><a class="cui_ico_order" rel="nofollow" href="http://my.ctrip.com/Home/Order/TicketOrderList.aspx"><i class="cui-icon-card"></i>礼品卡订单 &gt;
</a></div>
</li>
<li class="divider"></li>
<li id="cui_nav_sl"><a titledec="商旅" class="cui_nav_has" id="c_ph_crptravel" href="http://ct.ctrip.com">商旅
<i class="cui_ico_triangle"></i><span class="point"></span></a><div class="cui_subnav_wrap">
<ul class="cui_sub_nav" id="div_crptravel">
<li><a titledec="商旅首页" id="c_ph_slsy_s" href="http://ct.ctrip.com">商旅首页
</a></li>
<li class="divider"></li>
<li><a titledec="企业差旅平台" id="c_ph_chl_s" href="http://ct.ctrip.com/crptravel/default/landing">企业差旅平台<span class="label-en"><em>HOT</em><i class="triangle"></i></span></a></li>
<li class="divider"></li>
<li><a titledec="会议旅游" id="c_ph_hj_s" href="http://mice.ctrip.com">会议旅游
</a></li>
</ul>
</div>
</li>
<li class="divider divider_spec"></li>
<li id="cui_nav_cruise"><a titledec="邮轮" class="cui_nav_non" id="c_ph_youlun" href="http://cruise.ctrip.com">邮轮</a></li>
<li class="divider divider_spec"></li>
<li id="cui_nav_cruise_skysea"><a titledec="天海邮轮" class="cui_nav_non" id="c_ph_skysea" href="http://cruise.ctrip.com/skysea">天海邮轮</a></li>
<li class="divider"></li>
<li id="cui_nav_more"><a rel="nofollow" id="a_moreLink" titledec="更多" class="cui_nav_more cui_nav_has" href="http://jifen.ctrip.com/rewards">更多
<i class="cui_ico_triangle"></i><span class="point"></span></a><div class="cui_subnav_wrap">
<ul class="cui_sub_nav" id="div_more">
<li><a titledec="积分商城" rel="nofollow" id="c_ph_rewards_m" href="http://jifen.ctrip.com/rewards">积分商城
</a></li>
<li class="divider"></li>
<li><a titledec="合作卡" rel="nofollow" id="c_ph_cards_m" href="http://cards.ctrip.com">合作卡
</a></li>
</ul>
</div>
</li>
<li id="loginDivLi" class="cui_nav_myctrip cui_content">
<ul class="cui_myctrip_log" style="display:block;" id="ulCTFullMC">
<li class="userLogin" id="div_User"></li>
<li class="myctrip" style="margin-top:0;"><span id="div_MyCtrip"></span><ul class="cui_account cui_account_login" id="loginDiv" style="display:none;">
<li>
<div id="div_Loginbtn"></div>
</li>
<li class="cui_account_info"><a rel="nofollow" href="http://my.ctrip.com/home/Order/AllOrder.aspx#ctm_ref=ssc_hp_myctrip_allorders_a">全部订单
</a></li>
<li class="divider"></li>
<li class="account_order">
<ul>
<li><a rel="nofollow" href="http://my.ctrip.com/Home/Order/FlightOrderList.aspx#ctm_ref=ssc_hp_myctrip_flightorders_a">机票订单
</a></li>
<li><a rel="nofollow" href="http://my.ctrip.com/Home/Order/HotelOrderList.aspx#ctm_ref=ssc_hp_myctrip_hotelorders_a">酒店订单
</a></li>
<li><a rel="nofollow" href="http://my.ctrip.com/Home/Order/PkgOrderList.aspx#ctm_ref=ssc_hp_myctrip_tourorders_a">旅游订单
</a></li>
<li><a rel="nofollow" href="http://my.ctrip.com/Home/Order/RailwayOrderList.aspx#ctm_ref=ssc_hp_myctrip_trainorders_a">火车票订单
</a></li>
<li><a rel="nofollow" class="gray" href="http://my.ctrip.com/home/FastOrder/OrderSearch.aspx#ctm_ref=ssc_hp_myctrip_phoneorders_a">手机号查订单
</a></li>
</ul>
</li>
<li class="divider"></li>
<li><a rel="nofollow" href="https://secure.ctrip.com/Payment-Base-PaymentPwd/Wallet/View/MyWalletIndex.aspx#ctm_ref=ssc_hp_myctrip_wallet_a">携程钱包
</a></li>
<li><a rel="nofollow" href="http://my.ctrip.com/FavoriteOnline/hotel/hotellist.aspx#ctm_ref=ssc_hp_myctrip_collect_a">收藏
</a></li>
<li><a rel="nofollow" href="https://smarket.ctrip.com/Promocode/zh-cn/Promocode.aspx#ctm_ref=ssc_hp_myctrip_integral_a">票券与积分
</a></li>
<li><a rel="nofollow" href="http://my.ctrip.com/Home/Passenger/PassengerList.aspx#ctm_ref=ssc_hp_myctrip_info_a">常用信息
</a></li>
</ul>
</li>
<li class="message" id="div_MyCTMessages"></li>
</ul>
<ul class="cui_myctrip_log" style="display:none;" id="ulCTMinMC">
<li class="userLogin" id="div_User"></li>
<li class="myctrip" style="margin-top:0;clear:left;"><span id="div_MyCtrip"></span><ul class="cui_account cui_account_login" id="loginDiv" style="display:none;">
<li>
<div id="div_Loginbtn"></div>
</li>
<li class="cui_account_info"><a rel="nofollow" href="http://my.ctrip.com/home/Order/AllOrder.aspx#ctm_ref=ssc_hp_myctrip_allorders_a">全部订单
</a></li>
<li><a rel="nofollow" class="gray" href="http://my.ctrip.com/home/FastOrder/OrderSearch.aspx#ctm_ref=ssc_hp_myctrip_phoneorders_a">手机号查订单
</a></li>
</ul>
</li>
<li class="message" id="div_MyCTMessages"></li>
</ul>
</li>
</ul>
</div>
<div id="nav_bh" class="cui_nav_behind" style="display:none;height:0px;"></div>
</div><input type="hidden" id="popfloating_isshow" value="0"><input type="hidden" id="siteDomainHeadFloat" value="ctrip"><input type="hidden" id="bsType" value="0"><script>
/**
* Ctrip JavaScript Code
* http://www.ctrip.com/
* Copyright(C) 2008 - 2015, Ctrip All rights reserved.
* Version: 151217
* Date: 2015-12-17
*/
;window.replace=function(){return ''};window.replace=function(){return""};
!function(){window.replace=function(){return""};(function(){var h=document,c=function(a){return h.getElementById(a)},k=null,l=null,m=0,d=[c("cui_nav_destination"),c("cui_nav_hotel"),c("cui_nav_vac"),c("cui_nav_flight"),c("cui_nav_more"),c("cui_nav_car"),c("cui_nav_trains"),c("cui_nav_tuan"),c("cui_nav_lpk"),c("cui_nav_ticket"),c("cui_nav_sl"),c("cui_nav_g")],g={onmouseenter:function(a,b){(h.all?a.onmouseenter=b:a.onmouseover=function(a){(null==a.relatedTarget?b():this!==a.relatedTarget&&20!=this.compareDocumentPosition(a.relatedTarget)&&
b())})},onmouseout:function(a,b){(h.all?a.onmouseleave=b:a.onmouseout=function(a){(null==a.relatedTarget?b():this!==a.relatedTarget&&20!=this.compareDocumentPosition(a.relatedTarget)&&b())})},addEvent:function(a,b,f){(a.addEventListener?a.addEventListener(b,f,!1):(a.attachEvent?a.attachEvent("on"+b,f):a["on"+b]=f))}},e={setTime:function(){g.onmouseenter(c("cui_nav"),function(){setTimeout(function(){m=150},30)});g.onmouseout(c("cui_nav"),function(){m=0})},initEvent:function(){for(var a=0,b=d.length;b>a;a++)(function(){var b=
a;g.onmouseenter(d[b],function(){e.interFn(d[b])});g.onmouseout(d[b],function(){e.outerFn(d[b])})})(a)},reset:function(){for(var a=0,b=d.length;b>a;a++)d[a].className=(-1<d[a].className.indexOf("cui_nav_current")?"cui_nav_current":"")},padReset:function(a){for(var b=0,f=d.length;f>b;b++)(-1<d[b].className.indexOf("cui_nav_current")?d[b].className="cui_nav_current":b!==a&&(d[b].className=""))},interFn:function(a){for(var b=document.getElementById("cui_nav").getElementsByTagName("li"),f="",d=0;d<b.length;d++)b[d].className.match((/cui_nav_current/))&&
(f=b[d]);null!=l&&(clearTimeout(l),l=null);k=setTimeout(function(){e.reset();(-1<a.className.indexOf("cui_nav_current")?f.className="cui_nav_current":(a.className="cui_nav_o",f.className="cui_nav_current cui_nav_unhover"))},m)},outerFn:function(a){for(var b=document.getElementById("cui_nav").getElementsByTagName("li"),d="",c=0;c<b.length;c++)b[c].className.match((/cui_nav_current/))&&(d=b[c]);null!=k&&(clearTimeout(k),k=null);l=setTimeout(function(){e.reset();(-1<a.className.indexOf("cui_nav_current")?
d.className="cui_nav_current":(a.className="",d.className="cui_nav_current"))},250)},initMobile:function(){for(var a=0,b=d.length;b>a;a++)(function(){var b=a,c=d[b].getElementsByTagName("A")[0];c.href="###";c.onmousedown=function(){e.padReset(b);-1===d[b].className.indexOf("cui_nav_current")&&((-1<d[b].className.indexOf("cui_nav_o")?(d[b].className="",document.getElementsByClassName("cui_nav_current")[0].className="cui_nav_current",c.style.visibility="hidden",setTimeout(function(){c.style.visibility=
"visible"},10)):(d[b].className="cui_nav_o",document.getElementsByClassName("cui_nav_current")[0].className="cui_nav_current",document.getElementsByClassName("cui_nav_current")[0].className+=" cui_nav_unhover")))}})(a)},contains:function(a){for(var b=0,c=d.length;c>b;b++)if(0<d[b].compareDocumentPosition(a)-19)return!0;return!1}};c("headStyleId")&&c("headStyleId").parentNode.removeChild(c("headStyleId"));((/ip(hone|od)|ipad/i).test(navigator.userAgent)?(e.initMobile(),g.addEvent(h.body,"click",function(a){e.contains(a.target||
a.srcElement)||e.reset()})):(e.setTime(),e.initEvent()))})()}();

</script>

<div id="base_bd">

<div class="head_crumb clearfix">
<a class="search_flthotel" id="flthotelLink" onclick="AirHotel.redirectToPackageAction();" href="javascript:void(0);">机+酒</a> <a href="http://flights.ctrip.com/">国内机票</a> &gt; 哈尔滨到上海机票(单程)
</div>

<form id="reSearchForm">
<div id="search_form" class="search_form clearfix">
<div class="flight_way">
<select id="FlightSearchType">
<option value="S">单程</option>
<option value="D">往返</option>
<option value="M">联程</option>
</select>
</div>
<div class="flight_attribute">
<ul>
<li>
<strong class="multiway" style="display: none;">第一程:</strong> 出发城市 <input type="text" id="DCityName1" name="DCityName1" mod="address|notice" mod_address_tpl="on" mod_address_reference="DCity1" placeholder="中文/拼音" mod_address_source="flight_new" autocomplete="off" />
<a class="swapcity ico_change2" title="互换出发到达城市" href="javascript:void(0);"></a><span class="lblACity">到达城市</span> <input type="text" id="ACityName1" name="ACityName1" mod_address_reference="ACity1" mod_address_tpl="on" mod="address|notice" mod_address_source="flight_new" placeholder="中文/拼音" autocomplete="off" />
出发日期 <input id="DDate1" name="DDate1" type="text" value="" mod="calendar|notice" placeholder="yyyy-mm-dd" autocomplete="off" />
<span class="returndate">返回日期 <input type="text" id="ReturnDate1" name="ReturnDate1" mod="calendar|notice" placeholder="yyyy-mm-dd" autocomplete="off" />
</span>
</li>
<li class="search_m second_line" style="display: none;">
<span><strong>第二程:</strong> 中转城市 <input type="text" disabled="disabled" id="DCityName2" autocomplete="off" /></span> <span>到达城市 <input type="text" id="ACityName2" name="ACityName2" mod_address_tpl="on" mod_address_focusnext="true" mod_address_reference="ACity2" mod="address|notice" mod_address_source="flight_new" placeholder="中文/拼音" autocomplete="off" /></span> <span>出发日期 <input type="text" id="DDate2" name="DDate2" mod="calendar|notice" placeholder="yyyy-mm-dd" autocomplete="off" />
</span>
</li>
</ul>
<div class="type_number_line" id="advanceOption" style="display: none;">
<span style="padding-left: 24px; text-align: right;">人数</span>
<select id="PassengerQuantity" name="PassengerQuantity">
<option value="1" selected="selected">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
</select>
<span id="passengerType_label">乘客类型</span>
<select id="PassengerType" name="PassengerType">
<option value="ADU" selected="selected">成人</option>
<option value="CHI">儿童(2-12周岁)</option>
<option value="BAB">婴儿(2周岁以下)</option>
</select>
<span>舱位等级</span>
<select id="ClassType" name="ClassType">
<option value="">经济舱</option>
<option value="CF">公务舱/头等舱</option>
</select>
</div>
</div>
<div class="search_tools clearfix" id="searchBtns">
<input type="button" data-ubt="ReSearch" value="重新搜索" style="display:" class="btn_search" id="btnReSearch" />
<a rel="nofollow" data-ubt="AdvanceSearch" id="advancedSearch" style="display:" class="arrow_down" href="javascript:void(0);">高级搜索<b></b></a>
</div>
<input id="DCity1" name="DCity1" type="hidden" />
<input id="ACity1" name="ACity1" type="hidden" />
<input id="DCity2" name="DCity2" type="hidden" />
<input id="ACity2" name="ACity2" type="hidden" />
</div>
</form>

<div id="searchHistory_box">
</div>
<div class="base_main" id="baseMain">
<div id="J_ADBanner"></div>


<div id="J_Announcement" style="display:none">
</div>
<div id="J_filterAlert" style="display:none">
</div>
<div id="J_alertInfo" style="display:none">
</div>

<div id="searchLoading" style="height: 160px; text-align: center;">
<p style="color: #333; padding: 5px 0;">正在为您搜索航班信息...</p>
<i class="ico_loading"></i>
<p style="color: #999; padding: 5px 0;">携程在手,说走就走</p>
</div>
<div id="J_searchError">
</div>


<div id="J_selectedFlight" style="display:none">
</div>
<div style="display: none" id="jmp_table2">
${txt1}
</div>
<div id="J_searchPannel" style="display: none;">
<div class="searchresult_content choose_type_m" id="J_searchResultList">
<div id="J_controlPannel">
<div class="calendar_tab calendar_panel clearfix" style="overflow: hidden;">
<div id="prevDate" class="prev_date">
<a class="arrow_left_disable" rel="nofollow" data-ubt="ChangeDate_Left" href="javascript:void(0);"><b></b></a>
</div>
<div style="position: relative;" class="calendar_tab_list">
<ul id="J_lowestPriceDateList" class="calendar_ul clearfix" style="position: relative;
left: 0;">
</ul>

</div>
<div id="nextDate" class="next_date">
<a class="arrow_right" rel="nofollow" data-ubt="ChangeDate_Right" href="javascript:void(0)"><b></b></a>
</div>
<div class="panel_link">
<a id="lowestPriceLink" href="javascript:void(0);" class="days90" target="_blank">
</a>
</div>
</div>

<div class="search_filter clearfix">
<div id="J_flightFilter">
</div>
<div style='display: none;' id="J_filterBar" class="filter_choosen clearfix">
<h4>
筛选条件:
</h4>
<a href="javascript:void(0);" data-ubt="Filter_Delete" id='filterClear'>清除</a>
</div>
</div>
<div class="sort-controls clearfix">
<ul class="sorts">
<li><a id="default_sort" data-ubt="Sort_All" ascdesc="综合" descdesc="综合" original="综合" field="default" cmd="sort" sort="ASC" href="javascript:void(0);" class="default">综合</a></li>
<li class="current">
<a id="dtime_sort" data-ubt="Sort_DepartTime" ascdesc="起飞时间从早到晚" descdesc="起飞时间从晚到早" original="起飞时间"
field="dtime" cmd="sort" href="javascript:void(0);" sort="ASC">起飞时间从早到晚<i class="ico ico-sort"></i></a>

</li>
<li>
<a id="price_sort" data-ubt="Sort_Price" ascdesc="价格从低到高" descdesc="价格从高到低" original="价格" field="price"
cmd="sort" href="javascript:void(0);">价格<i class="ico"></i></a>

</li>
<li>
<a href="javascript:void(0);" data-ubt="OnTimeRate" descdesc="准点率从高到低" original="准点率" field="punctuality"
cmd="sort">准点率</a>

</li>
</ul>
<a href="javascript:;" data-ubt="Governer" class="government-btn" onclick="Ctrip.Flight.Moudule.Other.civilSearch()">公务员通道</a>
<h3>
<strong id="flightCount">0</strong>条航班信息
</h3>
<div class="filter_side filter_mileage">
<label>
<input type="checkbox" data-ubt="Mile" id="filterMileage" class="input_checkbox" />显示里程累积
</label>
</div>
</div>
</div>

<div class="flight-list-content" style="position: relative; z-index: 1">
<div id="J_flightlist1">
</div>
<div id="J_flightlist2">
</div>
</div>
</div>
<div id="flightTransitRound" class="recommend_transit_box" style="display: none;">
<h3 class="recommend_transit_hd">
往返中转推荐</h3>
</div>
<div id="jmp_text" style="display: none">
<div class="jmp_bd">
${txt0}</div>
</div>
<div id="jmp_text_nopadding" style="display: none">
${txt0}
</div>
<div id="recommendProducts">
<div id="J_transit">
</div>
<div id="J_specialOffer">
</div>
<div id="J_near">
</div>
</div>
<div class="recommend_box">
<h3>有低价早知道</h3>
<p class="lowcost_remind">价格还不够低?订阅低价提醒,率先掌握低价信息。<input id="btn_remind" data-ubt="LowestSubscribe" onclick="window.open($(this).attr('url'))" type="button" value="立刻订阅" class="btn_white"></p>
</div>

<div class="disclaimer">
<h3>航班信息免责声明:</h3>
<p>携程旅行网提供的各类航班相关的信息,包括但不限于舱位价格、餐食、起降准点率等,来源于中国航信、全国各大机场、航空公司及相关部门公布数据。由于这些信息可能随时变化,以及网络传输问题,携程提供的此类信息可能并非最新或存在误差,因此<b>仅供旅客作为一般参考</b>,任何公司或个人不能将此作为携程做出任何承诺或做出任何保证的依据。</p>
</div>

<div class="base_crumb">
<a href="http://flights.ctrip.com">国内机票查询</a>&nbsp;| <a href="http://flights.ctrip.com/booking/hrb-HAERBIN-flights.html">哈尔滨</a>&nbsp;| <a href="http://flights.ctrip.com/booking/HRB-SHA-day-1.html">哈尔滨到上海</a>&nbsp;|
<span>哈尔滨到上海5月13日</span>
</div>
<div class="data_travelsky">
<span></span>数据信息由<br />
中国民航信息网络股份有限公司提供
</div>

</div>
<div id="noresult_seo" style="display:none;">
<div class="none_seo">
<div class="title">
国内热门机票</div>
<p class="link">
<a href="http://flights.ctrip.com/booking/CTU-SHA-day-1.html" title="成都到上海机票" target="_blank">成都到上海机票</a>
<a href="http://flights.ctrip.com/booking/BJS-CTU-day-1.html" title="北京到成都机票" target="_blank">北京到成都机票</a>
<a href="http://flights.ctrip.com/booking/BJS-SZX-day-1.html" title="北京到深圳机票" target="_blank">北京到深圳机票</a>
<a href="http://flights.ctrip.com/booking/CTU-BJS-day-1.html" title="成都到北京机票" target="_blank">成都到北京机票</a>
<a href="http://flights.ctrip.com/booking/CAN-BJS-day-1.html" title="广州到北京机票" target="_blank">广州到北京机票</a>
<a href="http://flights.ctrip.com/booking/TAO-SHA-day-1.html" title="青岛到上海机票" target="_blank">青岛到上海机票</a>
<a href="http://flights.ctrip.com/booking/XMN-SHA-day-1.html" title="厦门到上海机票" target="_blank">厦门到上海机票</a>
<a href="http://flights.ctrip.com/booking/SIA-BJS-day-1.html" title="西安到北京机票" target="_blank">西安到北京机票</a>
<a href="http://flights.ctrip.com/booking/CAN-HGH-day-1.html" title="广州到杭州机票" target="_blank">广州到杭州机票</a>
<a href="http://flights.ctrip.com/booking/CKG-SHA-day-1.html" title="重庆到上海机票" target="_blank">重庆到上海机票</a>
<a href="http://flights.ctrip.com/booking/SIA-SHA-day-1.html" title="西安到上海机票" target="_blank">西安到上海机票</a>
<a href="http://flights.ctrip.com/booking/TSN-SHA-day-1.html" title="天津到上海机票" target="_blank">天津到上海机票</a>
<a href="http://flights.ctrip.com/booking/BJS-KMG-day-1.html" title="北京到昆明机票" target="_blank">北京到昆明机票</a>
<a href="http://flights.ctrip.com/booking/HET-BJS-day-1.html" title="呼和浩特到北京机票" target="_blank">呼和浩特到北京机票</a>
<a href="http://flights.ctrip.com/booking/SHA-KHN-day-1.html" title="上海到南昌机票" target="_blank">上海到南昌机票</a>
<a href="http://flights.ctrip.com/booking/HFE-CAN-day-1.html" title="合肥到广州机票" target="_blank">合肥到广州机票</a>
<a href="http://flights.ctrip.com/booking/NKG-CAN-day-1.html" title="南京到广州机票" target="_blank">南京到广州机票</a>
<a href="http://flights.ctrip.com/booking/ZUH-SHA-day-1.html" title="珠海到上海机票" target="_blank">珠海到上海机票</a>
<a href="http://flights.ctrip.com/booking/SYX-SHA-day-1.html" title="三亚到上海机票" target="_blank">三亚到上海机票</a>
</p>
</div>
</div>

</div>
<div class="base_side rightcolumn" id="demo_side">
<div id="J_roundLowestPrice">
</div>
<div id="J_searchHistory">
</div>
<div class="mb10" style="display:none">
<a target="_blank" href="http://events.ctrip.com/flight/jiesongjihuodongpc.html#ctm_ref=Fld_sr_rec_carcoup" class="send_hotel_coupon"></a>
</div>
<div id="J_airlineLowestPrice">
</div>
<div id="J_rcmAirlineLowestPrice">
</div>
<div id="J_NearFlightRecommend">
</div>
<div class="mod_box mb10">
<a class="btn-block moment_icon1" data-ubt="FlightCalendar" href="http://flights.ctrip.com/schedule/HRB.SHA.html#ctm_ref=fld_sr_fsch_def_i_1" target="_blank">
<i></i>航班时刻表</a></div>
<div class="mod_box mb10">
<a class="btn-block information_icon1" data-ubt="FlightInfo" href="http://flights.ctrip.com/actualtime/HRB-SHA#ctm_ref=fld_sr_ftl_def_i_1" target="_blank">
<i></i>航班动态查询</a></div>


<div class="whyctrip2">
<h3>为什么选携程?</h3>
<div class="whyctrip2_main">
<a href="http://pages.ctrip.com/commerce/promote/201410/flight/jp/index.html#fld_sr_slg_def_t_1" data-ubt="SafeService" target="_blank">
<img data-ubt="SafeService" src="http://pic.c-ctrip.com/fltdomestic111027/choose_search.png">
</a>
</div>
</div>

</div>
<div class="seo_footer_new">
<div class="title">
携程网提供<a href="http://flights.ctrip.com/">特价机票</a>,<a href="http://flights.ctrip.com/schedule/">航班时刻表</a>,<a href="http://flights.ctrip.com/actualtime/">航班动态查询</a>:
</div>
<p class="p_text">携程机票为您提供<a href="http://flights.ctrip.com/booking/lowprice-HRB-SHA----adu-1/">哈尔滨到上海特价机票</a>,以及<a href="http://flights.ctrip.com/booking/china-city-flights-sitemap.html">飞机票价格查询</a>,<a href="http://flights.ctrip.com/booking/top">机票排行榜</a>,<a href="http://flights.ctrip.com/hot-flights.html">热门机票</a>,<a href="http://flights.ctrip.com/hot-airport.html">机场查询</a>.现在<a rel="nofollow" href="https://accounts.ctrip.com/member/emailregist.aspx" target="_blank">注册</a>携程会员即可获得1200积分和1300元消费券! </p>
<p><strong>哈尔滨到上海相关</strong> <a href="http://flights.ctrip.com/booking/HRB-SHA-day-1.html">哈尔滨到上海机票</a> <a href="http://flights.ctrip.com/schedule/HRB.SHA.html">哈尔滨到上海航班</a> <a href="http://flights.ctrip.com/actualtime/HRB-SHA/">哈尔滨到上海航班动态</a> <a href="http://flights.ctrip.com/booking/SHA-HRB-day-1.html">上海到哈尔滨机票</a> <a href="http://m.ctrip.com/html5/flight/HRB-SHA-day-1.html">哈尔滨到上海机票手机版</a></p>
<p><strong>旅行助手</strong> <a href="http://flights.ctrip.com/booking/hrb-haerbin-flights.html">哈尔滨特价机票</a> <a href="http://flights.ctrip.com/schedule/hrb..html">哈尔滨航班时刻表</a> <a href="http://flights.ctrip.com/actualtime/depart-hrb/">哈尔滨航班动态</a>
<a href="http://flights.ctrip.com/booking/airport-taiping/">太平国际机场</a>
<a href="http://flights.ctrip.com/actualtime/booking/top/city-hrb">哈尔滨机票排行榜</a> <a href="http://trains.ctrip.com/TrainBooking/haerbin/">哈尔滨火车票</a> <a href="http://trains.ctrip.com/TrainSchedule/haerbin/">哈尔滨火车时刻表</a> <a href="http://hotels.ctrip.com/hotel/haerbin5">哈尔滨酒店预订</a>

</p>
<p><strong>机票工具箱</strong><a href="http://flights.ctrip.com/booking/china-city-flights-sitemap.html" title="打折机票">打折机票</a> <a href="http://flights.ctrip.com/schedule/" title="航班查询时刻表">航班时刻表查询</a> <a href="http://flights.ctrip.com/actualtime/" title="航班实时起降查询">航班动态查询</a> <a href="http://flights.ctrip.com/hot-airport.html" title="热门机场">机场查询</a> <a href="http://flights.ctrip.com/booking/top" title="机票排行榜">机票排行榜</a> <a href="http://flights.ctrip.com/booking/hot-city-flights-sitemap.html" title="机票地图">机票地图</a> <a href="http://m.ctrip.com/html5/Flight/" title="机票手机版">机票手机版</a> <a href="http://www.skysea.com/" title="天海游轮">天海游轮</a> <a href="http://flights.ctrip.com/domestic/checkinseat/index" title="值机">值机</a></p>
<p><strong>打折机票</strong>
<a href="http://flights.ctrip.com/booking/sha-Shanghai-flights.html">上海特价机票</a>
<a href="http://flights.ctrip.com/booking/bjs-Beijing-flights.html">北京特价机票</a>
<a href="http://flights.ctrip.com/booking/can-Guangzhou-flights.html">广州特价机票</a>
<a href="http://flights.ctrip.com/booking/szx-Shenzhen-flights.html">深圳特价机票</a>
<a href="http://flights.ctrip.com/booking/ckg-Chongqing-flights.html">重庆特价机票</a>
<a href="http://flights.ctrip.com/booking/ctu-Chengdu-flights.html">成都特价机票</a>
<a href="http://flights.ctrip.com/booking/kmg-Kunming-flights.html">昆明特价机票</a>
<a href="http://flights.ctrip.com/booking/xmn-Xiamen-flights.html">厦门特价机票</a>
<a href="http://flights.ctrip.com/booking/syx-Sanya-flights.html"> 三亚特价机票</a>
<a href="http://flights.ctrip.com/booking/dlc-Dalian-flights.html"> 大连特价机票</a>
<a href="http://flights.ctrip.com/booking/ljg-Lijiang-flights.html">丽江特价机票</a>
<a href="http://flights.ctrip.com/booking/tsn-Tianjin-flights.html">天津特价机票</a>
<a href="http://flights.ctrip.com/booking/foc-Fuzhou-flights.html">福州特价机票</a>
<a href="http://flights.ctrip.com/booking/she-Shenyang-flights.html">沈阳特价机票</a>
<a href="http://flights.ctrip.com/booking/cgo-Zhengzhou-flights.html"> 郑州特价机票</a>
<a href="http://flights.ctrip.com/booking/tao-Qingdao-flights.html">青岛特价机票</a>
<a href="http://flights.ctrip.com/booking/sia-Xian-flights.html">西安特价机票</a>
<a href="http://flights.ctrip.com/booking/nkg-Nanjing-flights.html">南京特价机票</a>
<a href="http://flights.ctrip.com/booking/wuh-Wuhan-flights.html">武汉特价机票</a>
<a href="http://flights.ctrip.com/booking/hgh-Hangzhou-flights.html">杭州特价机票</a>
<a href="http://flights.ctrip.com/booking/china-city-flights-sitemap.html">更多特价机票</a>
</p>

</div>
<div id="ApplyProductWaitTimeTips" class="pop_v2_bd" style="display:none;">
<p style="padding: 10px 20px; text-align: center;">该机票我愿意从<span class="base_price">05月11日</span>等到:</p>
<p style="padding: 10px 20px; text-align: center;">
<label class="base_label" id="apChoose24">
<input type="radio" name="ApplyProductChoose" value="24" class="input_radio" />
24小时内
</label>
<label class="base_label" id="apChoose72" style="margin-right: 10px;">
<input type="radio" name="ApplyProductChoose" value="72" class="input_radio" />
72小时内
</label>
<label class="base_label" id="apChooseAll">
<input type="radio" name="ApplyProductChoose" value="0" class="input_radio" />
起飞前2小时</label>
</p>
<div style="padding: 10px; text-align: center;">
<input type="button" value="申 请" class="base_btns2" id="ApplyProductBtn" />
</div>
</div>

<input id="PackageItems1" type="hidden" value="" />
<input id="SmCorpFeeType1" type="hidden" value="" />
<input id="SmCorpData1" type="hidden" value="" />
<input id="SmCorpData" type="hidden" />
<input type="hidden" id="ab_testing_tracker" value="M:83,150323_fld_hltcp:E;M:58,160223_fld_bs3x:C;M:23,160303_fld_hscp:B;M:32,160225_fld_tsrec:B;M:58,160304_fld_pcbs:A;M:20,160316_fld_close:C;M:32,160225_fld_tsrec:B;" />
<input id="page_id" type="hidden" value="wait" />
<input id="RouteLowestPriceList" type="hidden" value='' />
<input id="RouteLowestPriceListSecond" type="hidden" />
<input id="ubtLog1" type="hidden" value="" />
<input id="commonKeyForUbt" name="flt_inland_search_click" type="hidden" value="flt_inland_search_click" />

<input id="isSingleToRound" type="hidden" value="" />
<script type="text/javascript">
var $$ = {module: { jmpInfo: { array: {} } } };
var RootUrl="http://flights.ctrip.com/domestic/";
var SEORootUrl="http://flights.ctrip.com/booking/";
var BookRootUrl="http://flights.ctrip.com/Book/";
var SearchRootUrl = "http://flights.ctrip.com/domesticsearch/search/";
var ProcessRootUrl = 'http://flights.ctrip.com/Process';
var IsQuickBooking="";
</script>


<div id="comfortable_jmp_text" style="display: none">
${txt0}
</div>


</div>
<script type="text/javascript">
window.ReleaseNo = "CR_2016_05_10_19_57_18";

window.onresize=window.onload = function () {
setFullScreen();
}
var pageWidth;

function setFullScreen() {
pageWidth = window.innerWidth;
if (typeof pageWidth != "number") {
if (document.compatMode == "CSS1Compat") {
pageWidth = document.documentElement.clientWidth;
} else {
pageWidth = document.body.clientWidth;
}
}
var body = document.getElementsByTagName("body")[0];
if (pageWidth <= 1250) {
if (/msie/i.test(navigator.userAgent)&&body.className.indexOf("width_change") == -1) {
body.className = "width_change";
}
//X档案前
if (document.getElementById("cui_nav_ul")) {
document.getElementById("cui_nav_ul").style.width = "980px";
document.getElementById("cui_hd").style.width = "980px";
}
//X档案后
//低价日历的宽度
var lowestPrice = document.getElementById("J_lowestPriceDateList");
if (lowestPrice != null) {
var par = lowestPrice.parentNode;
while (par.nodeType != 1) {
par = par.parentNode;
}
par.style.width = "748px";
if (window["moudule_init"]) {
Ctrip.Flight.Moudule.PriceCalendar.resetPosition();
}
}

//历史查询
var searchHistory = document.getElementById("searchHistory");
if (searchHistory != null && document.getElementById("searchHistory_box")!=null) {
document.getElementById("searchHistory_box").appendChild(searchHistory);
}
//相邻航线特惠 J_specialOffer
var nearFlightRecommend = document.getElementById("NearFlightRecommend");
if (nearFlightRecommend != null && document.getElementById("J_specialOffer")!=null) {
document.getElementById("J_specialOffer").appendChild(nearFlightRecommend);
}

}
else {
if (/msie/i.test(navigator.userAgent)&&body.className.indexOf("width_change") > -1) {

body.className = "";
}
//X档案前
if (document.getElementById("cui_nav_ul")) {
document.getElementById("cui_nav_ul").style.width = "1180px";
document.getElementById("cui_hd").style.width = "1180px";
}
//X档案后
//低价日历
var lowestPrice = document.getElementById("J_lowestPriceDateList");
if (lowestPrice != null) {
var par = lowestPrice.parentNode;
while (par.nodeType != 1) {
par = par.parentNode;
}
par.style.width = "728px";
if (window["moudule_init"]) {
Ctrip.Flight.Moudule.PriceCalendar.resetPosition();
}
}
//历史查询searchHistory
var searchHistory = document.getElementById("searchHistory");
if (searchHistory != null && document.getElementById("J_searchHistory")!=null) {
document.getElementById("J_searchHistory").appendChild(searchHistory);
}
//相邻航线特惠
var nearFlightRecommend=document.getElementById("NearFlightRecommend");
if (nearFlightRecommend != null && document.getElementById("J_NearFlightRecommend")!=null) {
document.getElementById("J_NearFlightRecommend").appendChild(nearFlightRecommend);
}
}
}
</script>

<script src="http://webresource.c-ctrip.com/code/cquery/LABjs/LAB.js" charset="utf-8" type="text/javascript"></script>

<script type="text/javascript">
var SearchCondition={"SearchType":"S","SearchRouteIndex":0,"DCity1":"HRB","DCityId1":5,"ACityId1":2,"ACityId2":0,"DCityName1":"哈尔滨","DPort1":"","ACity1":"SHA","ACityName1":"上海","APort1":"","ACity2":"","ACityName2":"","APort2":"","DDate1":"2016-05-13","DDate2":"","Quantity":1,"ClassType":"","PassengerType":"ADU","AirlineCode":"","AirlineName":"","DTimeRange":"","VipGrade":0,"DontDownloadData":false,"IsCivil":false,"DirectChannel":null,"IsSortByPrice":false,"CPCityId":5,"CK":"36B05DD175F36398546F66CA5EFD07DE","SaleChannel":"FlightOnline","IsShowOneNoCarAd":false,"HotelsCouponAbtestVersionInsuranceId":"C2C30","FlightXAdditionalProductsFlag":0,"IsRoundTrip":false,"IsNearAirportRecommond":"0","LogToken":"bab2b06f320f42898800a2cbf778a17a","ABTestInfo":[{"TestCode":"160304_fld_pcbs","TestVersion":"D"},{"TestCode":"160225_fld_tsrec","TestVersion":"B"}]};
var SelectedFlight1=null;
var pageConfig={
needSearch:true,
displayMode:0,
isRecommendTransit:true,
isOpenPOIAddress:true,
flightTemplate:[{"Key":"Icon_3USalePromotion","Content":"川航特卖季:订直销,享特价","ABTest":""},{"Key":"Icon_3USalePromotionType","Content":"特卖","ABTest":""}],
MD5UserID:"",
isOpenSearchRoundRecommend:true,
isSeparateShowRecommend:false ,
IsPromotionInfo: false,
isCivil:"",
isAirTrain:false,
isPreferetial:false,
vehicleType:"",
autosearchflightminute:10,
handlerIndex:"86,13-14,02-04-03",
airTrainDisplayMode:"1",
IsShowCoupon: true,
IsSearchRoundLowestPriceMore:true,
reTransitCount:5,
from:"",
isOpenFreeTravel:"T",
isOpenClassYPriceMarkup:"T",
IsShowMileage:"True",
TgqDetailAirlines:"CA,MU,FM,CZ,HU,SC",
ShowTgqDetailSubClass:"CA,MU,FM,CZ,HU,SC",
IsOpenTravelPrompt:"T",
TravelPromptType:"T",
TravelPromptMs:70,
AirLineConfig:"CA,MU,CZ,SC,JD,MF,FM,PN,AQ,KY,8L,GX,ZH,HO,QW,HU,GJ,FU,DZ,GS,3U,Y8,CN",
IsShowApplyTicketSuccessRate:true,
IsOpenRoundTripSpecial: true,
IsOpenRoundTripMultiReturn: true,
IsShowComfortable:false,
DirectSpread:0,
IsOpenDirectSpread:"T",
ApplyTicketMinSuccessRate:0.98,
HotelsCoupon:{HotelsCoupon:0,Insurance:1,HoteCoupon:2,HotelsCouponConfig:{n:"酒店优惠券",num:1,t:"HotelsCoupon",description:"<h5>酒店优惠券使用说明:</h5><ul class=\"decimal\"><li>包含1张100元酒店优惠券</li><li>适用于单价大于300元的国内酒店房型(含港澳台)</li><li>100元现金将在酒店订单成交后3个工作日内返还至您的携程账户</li><li>优惠券自发放之日起30天内有效</li><li>具体使用规则详见我携优惠券使用说明</li></ul>",originalPrice:100,p:25}},
VipGrade: "0|",
OrientThrow: true,
isFull:"",
RoundTripFlightLine:'',
RoundTripFlightNo:'',
RoundTripPrice:0,
TravelPackageAndRentCarHoverMessage:"适用产品:1)预订频道:携程用车-国内接送机频道;2)适用产品:产品左上角带有“专享”标签的国内接送机产品;3)使用限制:用车时间不限,支持网站及手机预订使用,每张订单优惠{{printprice}}元,优惠券自发券日起90天内预订使用有效;|||",
IsShowComfortableMessage:false,
DefaultSortSwitcher:true,
IpCityCheckSwitcher:false,
IpCityCheckTimeRange:"07:00-22:30",
ReroundExceptAirlines:"CZ",
ShowPackageShopExceptAirlines:"CZ",
GiftActivitiesRoutePopupMessage:'',
HideTicketMinSuccessRate:0.5,
ReplaceAirLineMarketingInsurance:'<ul class="decimal"><li style="font-size: 12px;font-family: Arial,Tahoma,simsun;">保险名称:中航三星航意险30</li><li style="font-size: 12px;font-family: Arial,Tahoma,simsun;">份数限制:购买上限5份;</li><li style="font-size: 12px;font-family: Arial,Tahoma,simsun;">保险有效期:指被保险人每次以乘客身份,乘坐电子保单载明的合法商业运营的客运飞机班次,并遵守承运人关于安全乘坐的规定,自持有效机票检票并进入所乘客运飞机客舱时起至抵达机票载明的终点离开所乘客运飞机客舱的期间内遭受意外伤害所导致的保险责任;</li><li style="font-size: 12px;font-family: Arial,Tahoma,simsun;">保险费:&yen;30/份; </li><li style="font-size: 12px;font-family: Arial,Tahoma,simsun;">保额:航空意外伤害保险责任&yen;120万,航空意外伤害医疗责任最高可赔付&yen;5万元</li><li style="font-size: 12px;font-family: Arial,Tahoma,simsun;">售出可退(乘机日之前)</li><li style="font-size: 12px;font-family: Arial,Tahoma,simsun;">年龄:出生30天(含)至100周岁</li><li style="font-size: 12px;font-family: Arial,Tahoma,simsun;">保险公司将委托携程在各地有资质的服务商为有需要的客户提供保险定额发票以作报销。保险定额发票仅作报销凭证,不是保单凭证;</li><li style="font-size: 12px;font-family: Arial,Tahoma,simsun;">数据电文是合法的合同表现形式,电子保单与纸质保单具有同等法律效力,请妥善保存。电子保单可在保险公司网站上查询和下载;</li><li style="font-size: 12px;font-family: Arial,Tahoma,simsun;">产品详细条款可致电中航三星人寿热线400-810-1888或登录http://www.ssac.com.cn/进行垂询。</li></ul>',
IsShowSharedFlight:true,
IsOpenSendFSR:true,
IsShowUpgradeClass:true,
AirLineMarketingConfig:"AQ,PN,KN",
ShowAvatarOfAirlineMarketing:true,
UpgradeClassDescription:{ZH:"<p>购买深航超值经济舱:</p><ul ><li>&#183;保证<strong style=color:#f60;>100%</strong>免费升级至尊鹏头等舱。</li><li>&#183;享受机场贵宾休息室、空中专属服务等全程礼遇。</li><li>&#183;免费行李额40KG,按200%比例累积里程。</li><li>&#183;报销凭证为升舱后头等舱行程单。</li></ul>"},
IsShowFlightAgent:false,
IgnoreFreeTravelAirline:"9C",
IsOpenAnnouncement:"T",
AirLineInsuranceConfig:"CA,1200000",
SichuanAirlinesConfig:"CTU",
IsOpenAsyncGetTGQ:true,
isTopAMT:true,
topAMTCode:"cz,sc,mu,ca,jd,mf,fm,pn,aq,ky,8l,gx,zh,ho,qw,hu,gj,fu,dz,gs,3u,y8,cn",
strictMKTAirline:"CZ|AirLineMarketing,CZ|AvatarOfAirlineMarketing|CZ|BusinessPriority,CZ|TravelPackage,CZ|PriorityPackage,CZ|BusinessProduct,CZ|BusinessPackage,CA|AirLineMarketing,CA|AvatarOfAirlineMarketing,MU|AirLineMarketing,MU|AvatarOfAirlineMarketing,FM|AirLineMarketing,FM|AvatarOfAirlineMarketing,HU|AirLineMarketing,HU|AvatarOfAirlineMarketing,3U|AirLineMarketing,3U|AvatarOfAirlineMarketing,8C|AirLineMarketing,8C|AvatarOfAirlineMarketing,8L|AirLineMarketing,8L|AvatarOfAirlineMarketing,9C|AirLineMarketing,9C|AvatarOfAirlineMarketing,A6|AirLineMarketing,A6|AvatarOfAirlineMarketing,AQ|AirLineMarketing,AQ|AvatarOfAirlineMarketing,BK|AirLineMarketing,BK|AvatarOfAirlineMarketing,CN|AirLineMarketing,CN|AvatarOfAirlineMarketing,DR|AirLineMarketing,DR|AvatarOfAirlineMarketing,DZ|AirLineMarketing,DZ|AvatarOfAirlineMarketing,EU|AirLineMarketing,EU|AvatarOfAirlineMarketing,FU|AirLineMarketing,FU|AvatarOfAirlineMarketing,G5|AirLineMarketing,G5|AvatarOfAirlineMarketing,GJ|AirLineMarketing,GJ|AvatarOfAirlineMarketing,GS|AirLineMarketing,GS|AvatarOfAirlineMarketing,GX|AirLineMarketing,GX|AvatarOfAirlineMarketing,GY|AirLineMarketing,GY|AvatarOfAirlineMarketing,HO|AirLineMarketing,HO|AvatarOfAirlineMarketing,JD|AirLineMarketing,JD|AvatarOfAirlineMarketing,JR|AirLineMarketing,JR|AvatarOfAirlineMarketing,KN|AirLineMarketing,KN|AvatarOfAirlineMarketing,KY|AirLineMarketing,KY|AvatarOfAirlineMarketing,MF|AirLineMarketing,MF|AvatarOfAirlineMarketing,NS|AirLineMarketing,NS|AvatarOfAirlineMarketing,OQ|AirLineMarketing,OQ|AvatarOfAirlineMarketing,PN|AirLineMarketing,PN|AvatarOfAirlineMarketing,QW|AirLineMarketing,QW|AvatarOfAirlineMarketing,RY|AirLineMarketing,RY|AvatarOfAirlineMarketing,SC|AirLineMarketing,SC|AvatarOfAirlineMarketing,TV|AirLineMarketing,TV|AvatarOfAirlineMarketing,UQ|AirLineMarketing,UQ|AvatarOfAirlineMarketing,VD|AirLineMarketing,VD|AvatarOfAirlineMarketing,Y8|AirLineMarketing,Y8|AvatarOfAirlineMarketing,YI|AirLineMarketing,YI|AvatarOfAirlineMarketing,ZH|AirLineMarketing,ZH|AvatarOfAirlineMarketing,CA|PriorityPackage,CA|TravelPackage,MU|PriorityPackage,MU|TravelPackage,FM|PriorityPackage,FM|TravelPackage,HU|PriorityPackage,HU|TravelPackage,3U|PriorityPackage,3U|TravelPackage,8C|PriorityPackage,8C|TravelPackage,8L|PriorityPackage,8L|TravelPackage,9C|PriorityPackage,9C|TravelPackage,A6|PriorityPackage,A6|TravelPackage,AQ|PriorityPackage,AQ|TravelPackage,BK|PriorityPackage,BK|TravelPackage,CN|PriorityPackage,CN|TravelPackage,DR|PriorityPackage,DR|TravelPackage,DZ|PriorityPackage,DZ|TravelPackage,EU|PriorityPackage,EU|TravelPackage,FU|PriorityPackage,FU|TravelPackage,G5|PriorityPackage,G5|TravelPackage,GJ|PriorityPackage,GJ|TravelPackage,GS|PriorityPackage,GS|TravelPackage,GX|PriorityPackage,GX|TravelPackage,GY|PriorityPackage,GY|TravelPackage,HO|PriorityPackage,HO|TravelPackage,JD|PriorityPackage,JD|TravelPackage,JR|PriorityPackage,JR|TravelPackage,KN|PriorityPackage,KN|TravelPackage,KY|PriorityPackage,KY|TravelPackage,MF|PriorityPackage,MF|TravelPackage,NS|PriorityPackage,NS|TravelPackage,OQ|PriorityPackage,OQ|TravelPackage,PN|PriorityPackage,PN|TravelPackage,QW|PriorityPackage,QW|TravelPackage,RY|PriorityPackage,RY|TravelPackage,SC|PriorityPackage,SC|TravelPackage,TV|PriorityPackage,TV|TravelPackage,UQ|PriorityPackage,UQ|TravelPackage,VD|PriorityPackage,VD|TravelPackage,Y8|PriorityPackage,Y8|TravelPackage,YI|PriorityPackage,YI|TravelPackage,ZH|PriorityPackage,ZH|TravelPackage",
UpgradeClass:false,
PackageCouponConfig1:'1.可用于携程国内旅游和出境游产品(不参加优惠券活动的产品除外);<br/>2.购买旅游度假产品订单满<dfn>&yen;</dfn><strong class="base_price">5000</strong><dfn>&yen;</dfn><strong class="base_price">100</strong>、满<dfn>&yen;</dfn><strong class="base_price">10000</strong><dfn>&yen;</dfn><strong class="base_price">200</strong>、满<dfn>&yen;</dfn><strong class="base_price">15000</strong><dfn>&yen;</dfn><strong class="base_price">300</strong>、满<dfn>&yen;</dfn><strong class="base_price">20000</strong><dfn>&yen;</dfn><strong class="base_price">400</strong>、满<dfn>&yen;</dfn><strong class="base_price">50000</strong><dfn>&yen;</dfn><strong class="base_price">1000</strong>,每订单每个优惠券限用一次。不适用于签证、欧铁、用车、顶级游、门票、景点+酒店套餐及不参与优惠券活动的特例产品。优惠券不可与其他优惠活动同时使用。请登陆后输入代码确认可否使用。(有效期至${EffectDate});<br/>注:本产品特供网络及手机客户端用户专享',
PackageCouponConfig2:'1.可用于携程国内旅游和出境游产品(不参加优惠券活动的产品除外);<br/>2.购买旅游度假产品订单满<dfn>&yen;</dfn><strong class="base_price">5000</strong><dfn>&yen;</dfn><strong class="base_price">100</strong>、满<dfn>&yen;</dfn><strong class="base_price">10000</strong><dfn>&yen;</dfn><strong class="base_price">200</strong>、满<dfn>&yen;</dfn><strong class="base_price">20000</strong><dfn>&yen;</dfn><strong class="base_price">400</strong>、满<dfn>&yen;</dfn><strong class="base_price">50000</strong><dfn>&yen;</dfn><strong class="base_price">1000</strong>、满<dfn>&yen;</dfn><strong class="base_price">100000</strong><dfn>&yen;</dfn><strong class="base_price">2000</strong>,每订单每个优惠券限用一次。不适用于签证、欧铁、用车、顶级游、门票、景点+酒店套餐及不参与优惠券活动的特例产品。优惠券不可与其他优惠活动同时使用。请登陆后输入代码确认可否使用。(有效期至${EffectDate});<br/>注:本产品特供网络及手机客户端用户专享',
CXTAirlinesConfig:[{"alc":"G5","sts":"ALL","ste":"ALL","dts":"2015-12-01 00:00:00","dte":"2015-12-31 23:59:59","tt":"华夏航特惠","te":"本产品由华夏航提供,专享0元火车票","cs":"ALL","fns":"ALL","transits":"CKG","routes":[{"dcc":"ALL","acc":"ALL"}]},{"alc":"-3U","sts":"2016-01-04 00:00:00","ste":"2016-01-17 23:59:59","dts":"ALL","dte":"ALL","tt":"重庆飞特惠","te":"本产品由重庆机场特别提供火车票减免优惠","cs":"ALL","fns":"ALL","transits":"CKG","routes":[{"dcc":"ALL","acc":"ALL"}]},{"alc":"3U","sts":"ALL","ste":"ALL","dts":"2015-12-01 00:00:00","dte":"2015-12-31 23:59:59","tt":"川行通特惠","te":"本产品由四川航空 “ 川行通 ” 特别提供","cs":"ALL","fns":"ALL","transits":"ALL","routes":[{"dcc":"ALL","acc":"ALL"}]},{"alc":"PN","sts":"ALL","ste":"ALL","dts":"ALL","dte":"ALL","tt":"西航“欢天·喜地”","te":"本优惠产品由西部航空特别提供","cs":"ALL","fns":"ALL","transits":"ALL","routes":[{"dcc":"ALL","acc":"ALL"}]}],
pcCodeAirlineName:{CA:"国航",KY:"昆明航空",ZH:"深航","3U":"川航"},
freeAdditionalProducts:[{"Id":0,"Type":7,"OrderType":16,"OrderProductType":256,"ProductType":5,"Name":"酒店优惠券","SubTitle":"抵用<dfn>&yen;</dfn>100","Count":1,"PrintPrice":100,"SalePrice":0,"OrderDescription":"<div><strong>酒店优惠券使用说明:</strong><br />1.包含1张100元酒店优惠券。<br />2.适用于单价大于500元的国内酒店(含港澳台)房型(旅行社、团购、小时房、特价房除外)。<br />3.使用优惠券成功预订并入住、在订单成交后3个工作日内,100元将返还至您的携程账户。<br />4.每张优惠券限用一次,每张订单限用一张优惠券,优惠券不得转赠他人。<br />5.优惠券自发放之日起14天内有效。<br />6.订单取消后,优惠券将实时退还到账户(实际未入住用户除外)。<br />7.该优惠券不可退。</div>","Description":"<strong>酒店优惠券使用说明:</strong><br />1.包含1张100元酒店优惠券。<br />2.适用于单价大于500元的国内酒店(含港澳台)房型(旅行社、团购、小时房、特价房除外)。<br />3.使用优惠券成功预订并入住、在订单成交后3个工作日内,100元将返还至您的携程账户。<br />4.每张优惠券限用一次,每张订单限用一张优惠券,优惠券不得转赠他人。<br />5.优惠券自发放之日起14天内有效。<br />6.订单取消后,优惠券将实时退还到账户(实际未入住用户除外)。<br />7.该优惠券不可退。","BookDescription":"","ProductCode":"","ExpiryMonths":3,"ExpiryStartTime":"2016-05-11 07:10:48","IsSelected":false,"XProductType":0,"CssName":"combo_icon5","Index":0,"SelectMode":0,"Fields":null,"RuleId":0},{"Id":0,"Type":8,"OrderType":17,"OrderProductType":128,"ProductType":5,"Name":"接送机券","SubTitle":"抵用<dfn>&yen;</dfn>70","Count":1,"PrintPrice":70,"SalePrice":0,"OrderDescription":"<div><strong>接送机券使用说明:</strong><br />1.可用于携程用车-国内接送机频道中带有“专享”标签的国内接送机产品;<br />2.用车时间不限,支持网站及手机预订使用,每张订单优惠70元,优惠券自发券日起90天内预订使用有效;<br />3.该优惠券不可退。</div>","Description":"<strong>接送机券使用说明:</strong><br />1.可用于携程用车-国内接送机频道中带有“专享”标签或“机票特权”国内接送机产品;<br />2.用车时间不限,支持网站及手机预订使用,每张订单优惠70元,优惠券自发券日起90天内预订使用有效;<br />3.该优惠券不可退。","BookDescription":"","ProductCode":"","ExpiryMonths":3,"ExpiryStartTime":"2016-05-11 07:10:48","IsSelected":false,"XProductType":0,"CssName":"combo_icon5","Index":0,"SelectMode":0,"Fields":null,"RuleId":0}],
additionalProducts:[{"Id":0,"Type":5,"OrderType":9,"OrderProductType":9,"ProductType":1,"Name":"酒店优惠券","SubTitle":"抵用<dfn>&yen;</dfn>100","Count":1,"PrintPrice":100,"SalePrice":25,"OrderDescription":"<div><strong>酒店优惠券使用说明:</strong><br />1.包含1张100元酒店优惠券。<br />2.适用于单价大于300元的国内酒店(含港澳台)房型(旅行社、团购、小时房、特价房除外)。<br />3.100元现金将在酒店订单成交后3个工作日内返还至您的携程账户。<br />4.优惠券自发放之日起30天内有效。<br />5.每张优惠券限用一次,每张订单限用一张优惠券,优惠券不得转赠他人。<br />6.订单取消后,优惠券将实时退还到账户(实际未入住用户除外)。<br />7.优惠券不支持单独退订;已使用或已过期优惠券的套餐订单若发生退订,需在支付退订费时退还相应优惠券金额。</div>","Description":"<strong>酒店优惠券使用说明:</strong><br />1.包含1张100元酒店优惠券。<br />2.适用于单价大于300元的国内酒店(含港澳台)房型(旅行社、团购、小时房、特价房除外)。<br />3.100元现金将在酒店订单成交后3个工作日内返还至您的携程账户。<br />4.优惠券自发放之日起30天内有效。<br />5.每张优惠券限用一次,每张订单限用一张优惠券,优惠券不得转赠他人。<br />6.订单取消后,优惠券将实时退还到账户(实际未入住用户除外)。<br />7.优惠券不支持单独退订;已使用或已过期优惠券的套餐订单若发生退订,需在支付退订费时退还相应优惠券金额。","BookDescription":"","ProductCode":"33","ExpiryMonths":3,"ExpiryStartTime":"2016-05-11 07:10:48","IsSelected":true,"XProductType":0,"CssName":"combo_icon5","Index":0,"SelectMode":0,"Fields":null,"RuleId":0},{"Id":0,"Type":1,"OrderType":0,"OrderProductType":0,"ProductType":3,"Name":"航空意外险","SubTitle":"最高赔付&yen;320万","Count":1,"PrintPrice":30,"SalePrice":30,"OrderDescription":"","Description":"<ul><li>1、保险责任:指被保险人持有效机票检票并进入保单载明的合法商业运营的客运飞机客舱时起至抵达机票载明的终点离开客运飞机客舱的期间内遭受意外伤害所导致的保险责任;</li><li>2、保额:航空意外伤害保险责任320万元/航段;选择国航直连订单保险责任变更为120万元/航段,由中银三星承保;</li><li>3、保险费:30元/航段,计划起飞时间之前退票可退保;</li><li>4、本产品由太平洋寿险、中国人寿、阳光人寿、众安在线、天安财险、华夏人寿、国华人寿、新华人寿、中银三星、太平养老、大都会人寿等保险公司承保,销售服务方为携程保险代理有限公司 </li></ul>","BookDescription":"","ProductCode":"C2C30","ExpiryMonths":3,"ExpiryStartTime":"2016-05-11 07:10:48","IsSelected":false,"XProductType":0,"CssName":"combo_icon3","Index":0,"SelectMode":0,"Fields":null,"RuleId":0},{"Id":0,"Type":6,"OrderType":18,"OrderProductType":18,"ProductType":1,"Name":"门票礼包","SubTitle":"抵用<dfn>&yen;</dfn>100","Count":1,"PrintPrice":50,"SalePrice":30,"OrderDescription":"<div><strong>【50元门票优惠券】</strong><br />1.本优惠券可用于抵扣部分预付类国内门票产品,订单满200元减50元。<br />2.有效期内每张优惠券仅限使用一次,不能和其他优惠共享。<br />3.如发现恶意盗刷优惠券等行为,携程有权收回该行为涉及的优惠券,并取消所购产品。<br />4.该优惠券不可退。<br /><strong>【50元玩乐优惠券】</strong><br />1.本优惠券可用于抵扣部分当地玩乐频道预付类国内一日游产品,订单满200元减50元。<br />2.有效期内每张优惠券仅限使用一次,不能和其他优惠共享。<br />3.如发现恶意盗刷优惠券等行为,携程有权收回该行为涉及的优惠券,并取消所购品。<br />4.该优惠券不可退。</div>","Description":"<strong>【50元门票优惠券】</strong><br />1.本优惠券可用于抵扣部分预付类国内门票产品,订单满200元减50元。<br />2.有效期内每张优惠券仅限使用一次,不能和其他优惠共享。<br />3.如发现恶意盗刷优惠券等行为,携程有权收回该行为涉及的优惠券,并取消所购产品。<br />4.该优惠券不可退。<br /><strong>【50元玩乐优惠券】</strong><br />1.本优惠券可用于抵扣部分当地玩乐频道预付类国内一日游产品,订单满200元减50元。<br />2.有效期内每张优惠券仅限使用一次,不能和其他优惠共享。<br />3.如发现恶意盗刷优惠券等行为,携程有权收回该行为涉及的优惠券,并取消所购品。<br />4.该优惠券不可退。","BookDescription":"","ProductCode":"34","ExpiryMonths":3,"ExpiryStartTime":"2016-05-11 07:10:48","IsSelected":false,"XProductType":0,"CssName":"combo_icon4","Index":0,"SelectMode":0,"Fields":null,"RuleId":0}],
YPlusProducts:[{"Id":0,"Type":1,"OrderType":0,"OrderProductType":0,"ProductType":14,"Name":"抢票保障金","SubTitle":"抢票失败退一赔一","Count":1,"PrintPrice":300,"SalePrice":300,"OrderDescription":"","Description":"<strong>抢票保障金说明</strong><br />1、购买抢票保证金可提高抢票成功率至90%。<br />2、抢票保障金在抢票成功后不予退还。<br />3、抢票保障金在抢票失败后不予退还,票价(不含税)退一赔一。<br />4、抢票结果最晚起飞前${PromiseMinutes}告知。","BookDescription":"","ProductCode":"","ExpiryMonths":3,"ExpiryStartTime":"2016-05-11 07:10:48","IsSelected":false,"XProductType":0,"CssName":"combo_icon3","Index":0,"SelectMode":0,"Fields":null,"RuleId":0},{"Id":0,"Type":2,"OrderType":0,"OrderProductType":0,"ProductType":0,"Name":"抢票保障金","SubTitle":"抢票成功率${SuccessRate}%","Count":1,"PrintPrice":0,"SalePrice":0,"OrderDescription":"","Description":"<strong>抢票保障金说明</strong><br />1、购买抢票保证金可提高抢票成功率至90%。<br />2、抢票保障金在抢票成功后不予退还。<br />3、抢票保障金在抢票失败后不予退还,票价(不含税)退一赔一。<br />4、抢票结果最晚起飞前${PromiseMinutes}告知。","BookDescription":"","ProductCode":"","ExpiryMonths":3,"ExpiryStartTime":"2016-05-11 07:10:48","IsSelected":false,"XProductType":0,"CssName":"combo_icon3","Index":0,"SelectMode":0,"Fields":null,"RuleId":0}],
additionalProductsReplaceRules:[{"Filter":{"AirlineCode":"^(CA){1}$","SaleType":"^(AirLineMarketing|AvatarOfAirlineMarketing){1}$"},"ReplaceRule":{"1":{"Id":0,"Type":2,"OrderType":0,"OrderProductType":0,"ProductType":3,"Name":"航空意外险","SubTitle":"最高赔付<dfn>&yen;</dfn>120万","Count":1,"PrintPrice":30,"SalePrice":30,"OrderDescription":"","Description":"<ul class=\"decimal\"><li style=\"font-size: 12px;font-family: Arial,Tahoma,simsun;\">保险责任:指被保险人持有效机票检票并进入保单载明的合法商业运营的客运飞机客舱时起至抵达机票载明的终点离开客运飞机客舱的期间内遭受意外伤害所导致的保险责任;</li><li style=\"font-size: 12px;font-family: Arial,Tahoma,simsun;\">保额:航空意外伤害保险责任120万元/航段;</li><li style=\"font-size: 12px;font-family: Arial,Tahoma,simsun;\">保险费:30元/航段,计划起飞时间之前退票可退保;</li><li style=\"font-size: 12px;font-family: Arial,Tahoma,simsun;\">发票:提供保险定额发票作为报销凭证; </li><li style=\"font-size: 12px;font-family: Arial,Tahoma,simsun;\">保单验真:<a href=\"http://www.ssac.com.cn/Online/FlightInsQuery.aspx?ColumnId=131\" target=\"_blank\">http://www.ssac.com.cn/Online/FlightInsQuery.aspx?ColumnId=131</a></li><li style=\"font-size: 12px;font-family: Arial,Tahoma,simsun;\">本产品由中银三星承保,销售服务方为携程保险代理有限公司;</li></ul>","BookDescription":"","ProductCode":"C2C30","ExpiryMonths":3,"ExpiryStartTime":"2016-05-11 07:10:48","IsSelected":false,"XProductType":0,"CssName":"combo_icon3","Index":0,"SelectMode":1,"Fields":null,"RuleId":0}}},{"Filter":{"ExtensionFlag":"512"},"ReplaceRule":{"1":{"Id":0,"Type":4,"OrderType":7,"OrderProductType":8,"ProductType":1,"Name":"景酒优惠券","SubTitle":"抵用<dfn>&yen;</dfn>50","Count":1,"PrintPrice":50,"SalePrice":30,"OrderDescription":"<div><strong>景酒优惠券使用说明:</strong><br />1.包含1张50元优惠券,可用于抵扣携程旅游/酒店-酒店+景点频道下的旅游产品;<br />2.每张酒店+景点(自驾游)订单限用一张优惠券,满800-50元,每张优惠券限用1次(有效期自领券日起150天内出行预订有效)。<br />3.该优惠券不可退。</div>","Description":"<strong>景酒优惠券使用说明:</strong><br />1.包含1张50元优惠券,可用于抵扣携程旅游/酒店-酒店+景点频道下的旅游产品;<br />2.每张酒店+景点(自驾游)订单限用一张优惠券,满800-50元,每张优惠券限用1次(有效期自领券日起150天内出行预订有效)。<br />3.该优惠券不可退。","BookDescription":"","ProductCode":"35","ExpiryMonths":3,"ExpiryStartTime":"2016-05-11 07:10:48","IsSelected":false,"XProductType":0,"CssName":"combo_icon5","Index":0,"SelectMode":0,"Fields":null,"RuleId":0}}},{"Filter":{"ExtensionFlag":"4","ProductSource":"1"},"ReplaceRule":{"1":{"Id":0,"Type":4,"OrderType":7,"OrderProductType":8,"ProductType":1,"Name":"景酒优惠券","SubTitle":"抵用<dfn>&yen;</dfn>50","Count":1,"PrintPrice":50,"SalePrice":30,"OrderDescription":"<div><strong>景酒优惠券使用说明:</strong><br />1.包含1张50元优惠券,可用于抵扣携程旅游/酒店-酒店+景点频道下的旅游产品;<br />2.每张酒店+景点(自驾游)订单限用一张优惠券,满800-50元,每张优惠券限用1次(有效期自领券日起150天内出行预订有效)。<br />3.该优惠券不可退。</div>","Description":"<strong>景酒优惠券使用说明:</strong><br />1.包含1张50元优惠券,可用于抵扣携程旅游/酒店-酒店+景点频道下的旅游产品;<br />2.每张酒店+景点(自驾游)订单限用一张优惠券,满800-50元,每张优惠券限用1次(有效期自领券日起150天内出行预订有效)。<br />3.该优惠券不可退。","BookDescription":"","ProductCode":"35","ExpiryMonths":3,"ExpiryStartTime":"2016-05-11 07:10:48","IsSelected":false,"XProductType":0,"CssName":"combo_icon5","Index":0,"SelectMode":0,"Fields":null,"RuleId":0}}},{"Filter":{"ExtensionFlag":"4","ProductSource":"3"},"ReplaceRule":{"1":{"Id":0,"Type":4,"OrderType":7,"OrderProductType":8,"ProductType":1,"Name":"景酒优惠券","SubTitle":"抵用<dfn>&yen;</dfn>50","Count":1,"PrintPrice":50,"SalePrice":30,"OrderDescription":"<div><strong>景酒优惠券使用说明:</strong><br />1.包含1张50元优惠券,可用于抵扣携程旅游/酒店-酒店+景点频道下的旅游产品;<br />2.每张酒店+景点(自驾游)订单限用一张优惠券,满800-50元,每张优惠券限用1次(有效期自领券日起150天内出行预订有效)。<br />3.该优惠券不可退。</div>","Description":"<strong>景酒优惠券使用说明:</strong><br />1.包含1张50元优惠券,可用于抵扣携程旅游/酒店-酒店+景点频道下的旅游产品;<br />2.每张酒店+景点(自驾游)订单限用一张优惠券,满800-50元,每张优惠券限用1次(有效期自领券日起150天内出行预订有效)。<br />3.该优惠券不可退。","BookDescription":"","ProductCode":"35","ExpiryMonths":3,"ExpiryStartTime":"2016-05-11 07:10:48","IsSelected":false,"XProductType":0,"CssName":"combo_icon5","Index":0,"SelectMode":0,"Fields":null,"RuleId":0}}},{"Filter":{"SaleType":"^BusinessPackage$","AbTestValue":"150323_fld_hltcp:G"},"ReplaceRule":{"4":{"Id":0,"Type":5,"OrderType":9,"OrderProductType":9,"ProductType":1,"Name":"酒店优惠券","SubTitle":"抵用<dfn>&yen;</dfn>100","Count":1,"PrintPrice":100,"SalePrice":25,"OrderDescription":"<div><strong>酒店优惠券使用说明:</strong><br />1.包含1张100元酒店优惠券。<br />2.适用于单价大于300元的国内酒店(含港澳台)房型(旅行社、团购、小时房、特价房除外)。<br />3.100元现金将在酒店订单成交后3个工作日内返还至您的携程账户。<br />4.优惠券自发放之日起30天内有效。<br />5.每张优惠券限用一次,每张订单限用一张优惠券,优惠券不得转赠他人。<br />6.订单取消后,优惠券将实时退还到账户(实际未入住用户除外)。<br />7.优惠券不支持单独退订;已使用或已过期优惠券的套餐订单若发生退订,需在支付退订费时退还相应优惠券金额。</div>","Description":"<strong>酒店优惠券使用说明:</strong><br />1.包含1张100元酒店优惠券。<br />2.适用于单价大于300元的国内酒店(含港澳台)房型(旅行社、团购、小时房、特价房除外)。<br />3.100元现金将在酒店订单成交后3个工作日内返还至您的携程账户。<br />4.优惠券自发放之日起30天内有效。<br />5.每张优惠券限用一次,每张订单限用一张优惠券,优惠券不得转赠他人。<br />6.订单取消后,优惠券将实时退还到账户(实际未入住用户除外)。<br />7.优惠券不支持单独退订;已使用或已过期优惠券的套餐订单若发生退订,需在支付退订费时退还相应优惠券金额。","BookDescription":"","ProductCode":"33","ExpiryMonths":3,"ExpiryStartTime":"2016-05-11 07:10:48","IsSelected":false,"XProductType":0,"CssName":"combo_icon5","Index":0,"SelectMode":1,"Fields":null,"RuleId":0}}}],
additionalProductContentInfos:[{"ID":"1_0","SubTitle":"抵用<dfn>&yen;</dfn>${PrintPrice}","OrderDescription":"<div><strong>接送机券使用说明:</strong><br />1.可用于携程用车-国内接送机频道中产品左上角带有“专享”标签的国内接送机产品;<br />2.用车时间不限,支持网站及手机预订使用,每张订单优惠${PrintPrice}元,优惠券自发券日起90天内预订使用有效;<br />3.优惠券在有效期内未使用可随机票一起退订,若优惠券已使用或超过使用有效期限,订单发生退订时须返还相应优惠券金额。</div>","Description":"<strong>接送机券使用说明:</strong><br />1.可用于携程用车-国内接送机频道中带有“专享”标签或“机票特权”国内接送机产品;<br />2.用车时间不限,支持网站及手机预订使用,每张订单优惠${PrintPrice}元,优惠券自发券日起90天内预订使用有效;<br />3.优惠券在有效期内未使用可随机票一起退订,若优惠券已使用或超过使用有效期限,订单发生退订时须返还相应优惠券金额。","BookDescription":"<strong>接送机券使用说明:</strong><br />1.可用于携程用车-国内接送机频道中带有“专享”标签或“机票特权”国内接送机产品;<br />2.用车时间不限,支持网站及手机预订使用,每张订单优惠${PrintPrice}元,优惠券自发券日起90天内预订使用有效;<br />3.优惠券在有效期内未使用可随机票一起退订,若优惠券已使用或超过使用有效期限,订单发生退订时须返还相应优惠券金额。","ExpiryMonths":3},{"ID":"8_0","SubTitle":"抵用<dfn>&yen;</dfn>${PrintPrice}","OrderDescription":"<div><strong>接送机券使用说明:</strong><br />1.可用于携程用车-国内接送机频道中产品左上角带有“专享”标签的国内接送机产品;<br />2.用车时间不限,支持网站及手机预订使用,每张订单优惠${PrintPrice}元,优惠券自发券日起90天内预订使用有效。</div>","Description":"<strong>接送机券使用说明:</strong><br />1.可用于携程用车-国内接送机频道中带有“专享”标签或“机票特权”国内接送机产品;<br />2.用车时间不限,支持网站及手机预订使用,每张订单优惠${PrintPrice}元,优惠券自发券日起90天内预订使用有效。","BookDescription":"<strong>接送机券使用说明:</strong><br />1.可用于携程用车-国内接送机频道中带有“专享”标签或“机票特权”国内接送机产品;<br />2.用车时间不限,支持网站及手机预订使用,每张订单优惠${PrintPrice}元,优惠券自发券日起90天内预订使用有效。","ExpiryMonths":3},{"ID":"0_1","SubTitle":"抵用<dfn>&yen;</dfn>${PrintPrice}","OrderDescription":"<div><h4>${DepartCityName}${DepartPortName}贵宾休息室使用说明:</h4><ul><li>1)可提供<strong>免费餐饮、专属wifi、登机提醒</strong>等超值贵宾服务和更<strong>舒适的候机环境</strong>,具体服务不同机场可能存在不同;</li><li>2)使用时长2小时,航班起飞日起15天内有效;</li><li>3)2周岁以下婴儿免费 。</li></ul></div>","Description":"<h4>${DepartCityName}${DepartPortName}贵宾休息室使用说明:</h4><ul><li>1)可提供<strong>免费餐饮、专属wifi、登机提醒</strong>等超值贵宾服务和更<strong>舒适的候机环境</strong>,具体服务不同机场可能存在不同;</li><li>2)使用时长2小时,航班起飞日起15天内有效;</li><li>3)2周岁以下婴儿免费 。</li></ul>","BookDescription":"<h4>${DepartCityName}${DepartPortName}贵宾休息室使用说明:</h4><ul><li>1)可提供<strong>免费餐饮、专属wifi、登机提醒</strong>等超值贵宾服务和更<strong>舒适的候机环境</strong>,具体服务不同机场可能存在不同;</li><li>2)使用时长2小时,航班起飞日起15天内有效;</li><li>3)2周岁以下婴儿免费 。</li></ul>","ExpiryMonths":3},{"ID":"512_0","SubTitle":"抵用<dfn>&yen;</dfn>${PrintPrice}","OrderDescription":"<strong>酒店优惠券使用说明:</strong><br />1.包含1张100元酒店优惠券。<br />2.适用于单价大于300元的国内酒店(含港澳台)房型(旅行社、团购、小时房、特价房除外)。<br />3.使用优惠券成功预订并入住、在订单成交后3个工作日内,100元将返还至您的携程账户。<br />4.每张优惠券限用一次,每张订单限用一张优惠券,优惠券不得转赠他人。<br />5.优惠券自发放之日起30天内有效。<br />6.订单取消后,优惠券将实时退还到账户(实际未入住用户除外)。<br />7.该优惠券不可退。","Description":"<strong>酒店优惠券使用说明:</strong><br />1.包含1张100元酒店优惠券。<br />2.适用于单价大于300元的国内酒店(含港澳台)房型(旅行社、团购、小时房、特价房除外)。<br />3.使用优惠券成功预订并入住、在订单成交后3个工作日内,100元将返还至您的携程账户。<br />4.每张优惠券限用一次,每张订单限用一张优惠券,优惠券不得转赠他人。<br />5.优惠券自发放之日起30天内有效。<br />6.订单取消后,优惠券将实时退还到账户(实际未入住用户除外)。<br />7.该优惠券不可退。","BookDescription":"<strong>酒店优惠券使用说明:</strong><br />1.包含1张100元酒店优惠券。<br />2.适用于单价大于300元的国内酒店(含港澳台)房型(旅行社、团购、小时房、特价房除外)。<br />3.使用优惠券成功预订并入住、在订单成交后3个工作日内,100元将返还至您的携程账户。<br />4.每张优惠券限用一次,每张订单限用一张优惠券,优惠券不得转赠他人。<br />5.优惠券自发放之日起30天内有效。<br />6.订单取消后,优惠券将实时退还到账户(实际未入住用户除外)。<br />7.该优惠券不可退。","ExpiryMonths":3}],
IsOpenDirectChuanCoupon:true,
HXOptimizeSwitch:false,
comfortableConfig:'{"0-35":60,"35-45":65,"45-55":70,"55-65":75,"65-75":80,"75-85":85,"85-999":95}',
flightSearchAD:'{ "list": [] }',
loungeCouponName:"接送机+休息室",
isCombineSearch:true,
IsUseAjaxTGQAmountReturnText:false,
strictMKTNormalClassAirline:"CA|AirLineMarketing,CA|AvatarOfAirlineMarketing,CZ|AirLineMarketing,CZ|AvatarOfAirlineMarketing,MU|AirLineMarketing,MU|AvatarOfAirlineMarketing,FM|AirLineMarketing,FM|AvatarOfAirlineMarketing,HU|AirLineMarketing,HU|AvatarOfAirlineMarketing,3U|AirLineMarketing,3U|AvatarOfAirlineMarketing,8C|AirLineMarketing,8C|AvatarOfAirlineMarketing,8L|AirLineMarketing,8L|AvatarOfAirlineMarketing,9C|AirLineMarketing,9C|AvatarOfAirlineMarketing,A6|AirLineMarketing,A6|AvatarOfAirlineMarketing,AQ|AirLineMarketing,AQ|AvatarOfAirlineMarketing,BK|AirLineMarketing,BK|AvatarOfAirlineMarketing,CN|AirLineMarketing,CN|AvatarOfAirlineMarketing,DR|AirLineMarketing,DR|AvatarOfAirlineMarketing,DZ|AirLineMarketing,DZ|AvatarOfAirlineMarketing,EU|AirLineMarketing,EU|AvatarOfAirlineMarketing,FU|AirLineMarketing,FU|AvatarOfAirlineMarketing,G5|AirLineMarketing,G5|AvatarOfAirlineMarketing,GJ|AirLineMarketing,GJ|AvatarOfAirlineMarketing,GS|AirLineMarketing,GS|AvatarOfAirlineMarketing,GX|AirLineMarketing,GX|AvatarOfAirlineMarketing,GY|AirLineMarketing,GY|AvatarOfAirlineMarketing,HO|AirLineMarketing,HO|AvatarOfAirlineMarketing,JD|AirLineMarketing,JD|AvatarOfAirlineMarketing,JR|AirLineMarketing,JR|AvatarOfAirlineMarketing,KN|AirLineMarketing,KN|AvatarOfAirlineMarketing,KY|AirLineMarketing,KY|AvatarOfAirlineMarketing,MF|AirLineMarketing,MF|AvatarOfAirlineMarketing,NS|AirLineMarketing,NS|AvatarOfAirlineMarketing,OQ|AirLineMarketing,OQ|AvatarOfAirlineMarketing,PN|AirLineMarketing,PN|AvatarOfAirlineMarketing,QW|AirLineMarketing,QW|AvatarOfAirlineMarketing,RY|AirLineMarketing,RY|AvatarOfAirlineMarketing,SC|AirLineMarketing,SC|AvatarOfAirlineMarketing,TV|AirLineMarketing,TV|AvatarOfAirlineMarketing,UQ|AirLineMarketing,UQ|AvatarOfAirlineMarketing,VD|AirLineMarketing,VD|AvatarOfAirlineMarketing,Y8|AirLineMarketing,Y8|AvatarOfAirlineMarketing,YI|AirLineMarketing,YI|AvatarOfAirlineMarketing,ZH|AirLineMarketing,ZH|AvatarOfAirlineMarketing,CA|PriorityPackage,CA|TravelPackage,CZ|PriorityPackage,CZ|TravelPackage,MU|PriorityPackage,MU|TravelPackage,FM|PriorityPackage,FM|TravelPackage,HU|PriorityPackage,HU|TravelPackage,3U|PriorityPackage,3U|TravelPackage,8C|PriorityPackage,8C|TravelPackage,8L|PriorityPackage,8L|TravelPackage,9C|PriorityPackage,9C|TravelPackage,A6|PriorityPackage,A6|TravelPackage,AQ|PriorityPackage,AQ|TravelPackage,BK|PriorityPackage,BK|TravelPackage,CN|PriorityPackage,CN|TravelPackage,DR|PriorityPackage,DR|TravelPackage,DZ|PriorityPackage,DZ|TravelPackage,EU|PriorityPackage,EU|TravelPackage,FU|PriorityPackage,FU|TravelPackage,G5|PriorityPackage,G5|TravelPackage,GJ|PriorityPackage,GJ|TravelPackage,GS|PriorityPackage,GS|TravelPackage,GX|PriorityPackage,GX|TravelPackage,GY|PriorityPackage,GY|TravelPackage,HO|PriorityPackage,HO|TravelPackage,JD|PriorityPackage,JD|TravelPackage,JR|PriorityPackage,JR|TravelPackage,KN|PriorityPackage,KN|TravelPackage,KY|PriorityPackage,KY|TravelPackage,MF|PriorityPackage,MF|TravelPackage,NS|PriorityPackage,NS|TravelPackage,OQ|PriorityPackage,OQ|TravelPackage,PN|PriorityPackage,PN|TravelPackage,QW|PriorityPackage,QW|TravelPackage,RY|PriorityPackage,RY|TravelPackage,SC|PriorityPackage,SC|TravelPackage,TV|PriorityPackage,TV|TravelPackage,UQ|PriorityPackage,UQ|TravelPackage,VD|PriorityPackage,VD|TravelPackage,Y8|PriorityPackage,Y8|TravelPackage,YI|PriorityPackage,YI|TravelPackage,ZH|PriorityPackage,ZH|TravelPackage",
ALadingValue:"",
isBusinessPackageTag:true,
FreeGiftConfig:{"Lounge":{"Title":"赠休息室","Desc":"赠送价值¥200元的贵宾休息室一份<br><strong>贵宾休息室使用说明:</strong><br>1)携程贵宾休息室可提供免费餐饮等超值贵宾服务和更舒适的候机环境;<br>2)使用时长2小时,航班起飞当日有效;<br>3)2周岁以下婴儿免费。"}},
lightStyle:false,
AirlineMarketingAgencyIcons:null,
IsTravelPackageCloseFullInvoice:true,
UBTAirlineStoresConfig:"MU,CA,CZ,HU",
IsOpenBIRecResult:false,
strictHighFrequencyAirline:"ZH,DR",
FreeLuggageMaxAmount:20
};
var ssoInitLoginFlag = 'T';
function __SSO_submit(a, t) {
ssoInitLoginFlag = 'F';
if(a===null){
try{
if(SearchCondition.SearchType=="S"&&SearchBox){
SearchBox.reSearch();
}else{
location.href=location.href;
}
}catch(ex){}
return;
}
if ($("#" + a).length > 0) $("#" + a)[0].click();
}

</script>


<script type="text/javascript">
$globalPad = true;
var WebResourcePath = "http://webresource.c-ctrip.com/ResFlightOnline/R1/Booking";
$LAB.script({src:"http://webresource.c-ctrip.com/code/cquery/cQuery_110421.js?ReleaseNo=CR_2016_05_10_19_57_18",charset:"utf-8"}).wait().padScript({src:"http://webresource.c-ctrip.com/code/cquery/pad.js?ReleaseNo=CR_2016_05_10_19_57_18",charset:"utf-8"}).wait().script({src:"http://webresource.c-ctrip.com/code/js/resource/jmpinfo_tuna/CraftType_gb2312.js?ReleaseNo=CR_2016_05_10_19_57_18",charset:"gb2312"}).wait().script({src:"http://webresource.c-ctrip.com/ResFlightOnline/R1/Booking/release/dest/FlightSearchResult_XFile.min.js?ReleaseNo=CR_2016_05_10_19_57_18",charset:"utf-8"}).wait(LoadCallback);

function LoadCallback(){
if(typeof loadDomReady!="undefined"){
loadDomReady();
}
logTimer();
}

</script>

<script type="text/javascript" src="http://webresource.c-ctrip.com/ResCRMOnline/R6/member/common/js/mask_young.js?20140603"></script>
<div id="base_ft">
<p><a href="http://pages.ctrip.com/public/sitemap/sitemap.htm" target="_blank" title="网站导航">网站导航</a>&#xA0;|&#xA0;<a href="http://hotels.ctrip.com/jiudian/" target="_blank" title="宾馆索引">宾馆索引</a>&#xA0;|&#xA0;<a href="http://flights.ctrip.com/booking/hot-city-flights-sitemap.html " target="_blank" title="机票索引">机票索引</a>&#xA0;|&#xA0;<a href="http://pages.ctrip.com/public/sitemap/dj.html" title="旅游索引">旅游索引</a>&#xA0;|&#xA0;<a href="http://ct.ctrip.com/crptravel/sitemap.html" title="商旅索引">商旅索引</a>&#xA0;|&#xA0;<a title="攻略索引" href="http://you.ctrip.com/sitemap/">攻略索引</a>&#xA0;|&#xA0;<a rel="nofollow" href="http://pages.ctrip.com/public/ctripab/abctrip.htm" target="_blank" title="关于携程">关于携程</a>&#xA0;|&#xA0;<a rel="nofollow" target="_blank" href="http://pages.ctrip.com/commerce/promote/201201/other/qygm/index.html" title="企业公民">企业公民</a>&#xA0;|&#xA0;<a rel="nofollow" target="_blank" title="诚聘英才" href="http://job.ctrip.com/">诚聘英才
</a>&#xA0;|&#xA0;<a rel="nofollow" title="智慧旅游" href="http://you.ctrip.com/Intelligence.html">智慧旅游</a>&#xA0;
|&#xA0;<a rel="nofollow" target="_blank" href="http://u.ctrip.com/" title="分销联盟">分销联盟</a>&#xA0;|&#xA0;<a rel="nofollow" target="_blank" href="http://pages.ctrip.com/public/dlhz.htm" title="代理合作">代理合作</a>&#xA0;|&#xA0;<a target="_blank" href="http://ct.ctrip.com" title="企业商旅">企业商旅</a>&#xA0;|&#xA0;<a target="_blank" href="http://ct.ctrip.com/crptravel/default/landing" title="中小企业差旅">中小企业差旅</a>&#xA0;|&#xA0;<a rel="nofollow" target="_blank" href="http://pages.ctrip.com/public/ctripad/adyw.htm" title="广告业务">广告业务</a>&#xA0;|&#xA0;<a rel="nofollow" target="_blank" href="http://pages.ctrip.com/public/contact.htm" title="联系我们">联系我们</a></p>
<p><a rel="nofollow" href="http://hotels.ctrip.com/jiameng#ctm_ref=ctr_def_btm_hsu_n_1" target="_blank" title="酒店加盟">酒店加盟</a>&#xA0;|
<a rel="nofollow" href="http://pages.ctrip.com/commerce/promote/201501/destination/mdd/index.html">旅游局及景区合作</a>&#xA0;|&#xA0;
<a rel="nofollow" href="http://pages.ctrip.com/public/serve%20guideline.htm" target="_blank" title="服务说明">服务说明</a>&#xA0;|&#xA0;
<a rel="nofollow" target="_blank" href="http://pages.ctrip.com/public/diploma/company.htm">营业执照</a>&#xA0;|&#xA0;<a rel="nofollow" target="_blank" href="http://pages.ctrip.com/tour/ingroupline_pages.asp?folder=ingroup0904&amp;file=0177" title="旅游度假资质">旅游度假资质</a>&#xA0;|&#xA0;<a rel="nofollow" target="_blank" href="http://kefu.ctrip.com/insurance/index.aspx">保险代理</a>&#xA0;|&#xA0;<a target="_blank" href="http://pages.ctrip.com/public/link/ctrip_link.html">友情链接</a>&#xA0;|&#xA0;<a rel="nofollow" href="http://pages.ctrip.com/public/copyright.htm" id="copyright">Copyright&copy;</a>, <a href="http://www.ctrip.com/"> ctrip.com</a>. All rights reserved.&#xA0;|&#xA0;<a rel="nofollow" target="_blank" href="http://www.miibeian.gov.cn/">ICP证:沪B2-20050130</a></p>
<p class="gns"><a href="http://www.beian.gov.cn/portal/registerSystemInfo?recordcode=31010502000018"><i class="icon-gns"></i>沪公网备31010502000018号</a></p>
<div class="honour_wrap"><a href="http://www.itrust.org.cn/yz/pjwx.asp?wm=163178864X" title="网信编码:163178864X" class="honour1" target="_blank" rel="nofollow">信用评级</a><a href="http://www.sgs.gov.cn/lz/licenseLink.do?method=licenceView&amp;entyId=20110428175405415" title="工商亮照标识" class="honour2" target="_blank" rel="nofollow">上海工商</a><a href="http://search.cxwz.org/cert/l/CX20111018000615000623" title="诚信认证示范企业" class="honour3" target="_blank" rel="nofollow">诚信网站</a><a href="http://www.zx110.org/" class="honour4" target="_blank" rel="nofollow" title="征信网">网络社会征信网</a><a href="http://www.shjbzx.cn/" class="honour5" target="_blank" rel="nofollow" title="上海市互联网违法与违规信息举报中心">信息举报中心</a><a href="https://ss.knet.cn/verifyseal.dll?sn=e12061531010025926306977" class="honour6" target="_blank" rel="nofollow" title="可信网站">可信网站</a><a href="http://www.12377.cn/" class="honour8" title="违法和不良信息举报中心" target="_blank" rel="nofollow">违法和不良信息举报中心</a></div>
</div><config id="timespan" value="20160329"></config><!-- InstanceEnd name="position" --><script type="text/javascript">var globalConfig={H1:'https',H3:'my.ctrip.com',Lang:'gb2312',AjaxUrl:'accounts.ctrip.com'};</script><script type="text/javascript" src="http://webresource.c-ctrip.com/ResCRMOnline/R1/pageheader/js/PageHeadController.js?temp=20160510" charset="utf-8"></script>
<div class="comfort_bg_left" id="comfortableSortMessage" style="position: absolute;top:-1000px;left:0px;z-index:2002"></div><div class="mask_content" id="comfortableMessage" style="top:-1000px;left:0px;z-index:2002" ><div class="comfort_bg_right"></div><a class="btn" href="javascript:;" id="CloseComfortableMessage"></a></div>
</body>
</html>

从下图的代码处可以看到参数r的值
参数r

CK和rk参数值的获取(如果只想看最终结果请自行跳到下一节)

这两个参数就无法从主页面中直接获取到了,那么看一下主页面中执行的js文件吧,在主页面源代码的23-32行部分是显示数据的核心部分,在这里定义并且调用了ajaxRequest函数,把这个函数搞清楚那么CK和rk的值就弄清楚了。下面贴出来经过反向格式化的ajaxRequest函数代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
function ajaxRequest(n, t) {
var i = null,
e, f, l, o, s, r, c, u, h;
if (typeof XMLHttpRequest != "undefined") i = new XMLHttpRequest;
else if (typeof ActiveXObject != "undefined") {
if (typeof arguments.callee.aciveXString != "string") for (e = ["MSXML2.XMLHttp.6.0", "MSXML2.XMLHttp.3.0", "MSXML2.XMLHttp"], f = 0, l = e.length; f < l; f++) try {
i = new ActiveXObject(e[f]);
arguments.callee.activeXString = e[f];
break
} catch (a) {}
i == null && (i = new ActiveXObject(arguments.callee.activeXString))
}
i.onreadystatechange = function() {
try {
if (i.readyState == 4) if (i.status >= 200 && i.status < 300 || i.status == 304) {
var r = eval("(" + i.responseText + ")");
if (_searchCount_c == 0 && r && r.Error && r.Error.Code == 104 && (r.Error.Message == "" || !r.Error.Message)) {
_searchCount_c++;
setTimeout(function() {
var i = n.split("&");
i.pop();
ajaxRequest(i.join("&") + "&rt=" + Math.random() * 1e3, t)
}, 1e3);
return
}
jsonCallback.done(r)
} else i.status != 0 && jsonCallback.onError()
} catch (u) {
jsonCallback.onError()
}
};
window.location.hash && (o = window.location.hash.match(/DDate1=\d{4}-\d{2}-\d{2}/), o && o.length > 0 && (n = n.replace(/DDate1=(\d{4}-\d{2}-\d{2})/ig, o[0])), s = window.location.hash.match(/DDate2=\d{4}-\d{2}-\d{2}/), s && s.length > 0 && (n = n.replace(/DDate2=(\d{4}-\d{2}-\d{2})/ig, s[0])));
r = n.replace(/^[\s\xA0]+|[\s\xA0]+$/g, "");
(r.indexOf("ClassType=CF") == -1 || r.indexOf("ClassType=&") != -1) && (r += getStorage("FD_SearchPage_onlyCf") == "CF" ? "&ClassType=CF" : "");
_searchCount_c > 0 && (c = t.split(".")[1], t = "0." + c.substring(1, c.length - 1));
u = r.split("&");
h = r.indexOf("rk=") >= 0 || r.indexOf("rt=") >= 0 ? u.splice(u.length - 2, 1)[0] : u.pop();
u.push("CK=");
h = h.split("=")[1];
var fn = (function(u, r, k, t) {
var A1 = 1,
B1A = 1;
A1 = A1 *= parseInt(Math.tan(9) * 0xa);
A1 = A1 -= parseInt(Math.sqrt(9) * 0xa);
if (A1 < 0) A1 = -A1;
while (A1 > 30) A1 = A1 % 10;
B1A = B1A *= parseInt(Math.atan(5) * 0xa);
if (B1A < 0) B1A = -B1A;
while (B1A > 30) B1A = B1A % 10;
(function(r, u, x, y, t, k) {
if (!window.location.href) {
return;
}
var l = r.split('');
var c = l.splice(y, 1);
l.splice(x, 0, c);
t.open('GET', u.join('&') + l.join('') + '&r=' + k, !0);
t.send(null);
})(r, u, A1, B1A, t, k)
});
fn(u, h, t, i)
}
var jsonCallback = {
isError: !1,
isReady: !1,
data: {},
readyList: [],
errorList: [],
ready: function(n) {
this.isReady == !1 ? this.readyList.push(n) : n(this.data)
},
done: function(n) {
this.isReady = !0;
this.data = n;
for (var t = 0; this.readyList[t];) this.readyList[t](n), t++
},
error: function(n) {
this.isError == !1 ? this.errorList.push(n) : n()
},
onError: function() {
this.isError = !0;
for (var n = 0; this.errorList[n];) this.errorList[n](), n++
}
},
getStorage = function(n) {
var i, r, t;
try {
if (i = "{}", window.localStorage) i = localStorage.getItem("jStorage");
else if (window.globalStorage) i = window.globalStorage[window.location.hostname];
else {
r = document.head || document.getElementsByTagName("head")[0];
t = document.createElement("link");
t.style.behavior = "url(#default#userData)";
r.appendChild(t);
try {
t.load("jStorage")
} catch (u) {
t.setAttribute("jStorage", "{}");
t.save("jStorage");
t.load("jStorage")
}
i = t.getAttribute("jStorage") || "{}";
r.removeChild(t)
}
return !i || i == "{}" ? "" : eval("(" + i + ")")[n]
} catch (f) {
return ""
}
}

首先看函数的两个参数,第一个参数是字符串 “http://flights.ctrip.com/domesticsearch/search/SearchFirstRouteFlights?DCity1=HRB&ACity1=SHA&SearchType=S&DDate1=2016-05-13&IsNearAirportRecommond=0&CK=36B05DD175F36398546F66CA5EFD07DE&rk=Math.random()*10+'071048‘“
注意:由于这里面有一个random函数,所以上面的rk是一个0-9之间的一个16位长度的小数加上后面的071048,例如rk=7.248395953793079071048。
另一个参数是刚才给出的r的值,在函数内部这个参数名为t
接下来是变量定义和生成XMLHttpRequest对象,和与XMLHttpRequest监视的状态发生变化(即readystatechange)相关联的函数……这些都不是关注的重点,继续往下看。
第32行开始用正则对日期的格式进行了统一,并且去掉了多余的空格,变量o的值为DDate1所对应的时间,此处就是2016-05-13,
n中DDate值被替换为格式化后的值,其他位置保持不变;同理,DDate2也进行了类似的操作,
s中存放的就是格式化后的值。
局部变量r中存放的是url中去掉多余空格后的形式,在这里就是 “http://flights.ctrip.com/domesticsearch/search/SearchFirstRouteFlights?DCity1=HRB&ACity1=SHA&SearchType=S&DDate1=2016-05-13&IsNearAirportRecommond=0&CK=36B05DD175F36398546F66CA5EFD07DE&rk=Math.random()*10+'071048‘“ 这个字符串。
下面的c=t.split(“.”)[1]将变量t在”.”处分隔开,变成字符串数组[“0”,”1440474125154478474718”],然后将数组中的第二项赋值给c,因此此时c=”1440474125154478474718”;c.substring(1, c.length - 1)取得c的子串,去掉首位和末位,即“44047412515447847471”,执行过35行的语句后,t的值变为”0.44047412515447847471”。
第36行将r用”&”分隔开,得到变量u的值为 [ “http://flights.ctrip.com/domesticsearch/search/SearchFirstRouteFlights?DCity1=HRB“ , “ACity1=SHA” , “SearchType=S” , “DDate1=2016-05-13” , “IsNearAirportRecommond=0” , “CK=36B05DD175F36398546F66CA5EFD07DE” , “rk=7.248395953793079071048” ] ,
第37行从u中删除掉倒数第二项,即”CK=36B05DD175F36398546F66CA5EFD07DE”这一项,并将其赋值给h
第38行在u末尾添加了一项”CK=”,第39行h的值变为”36B05DD175F36398546F66CA5EFD07DE”,
第40-60行是fn函数的定义部分,61行调用了该函数,调用的形式为
fn([ “http://flights.ctrip.com/domesticsearch/search/SearchFirstRouteFlights?DCity1=HRB“ , “ACity1=SHA” , “SearchType=S” , “DDate1=2016-05-13” , “IsNearAirportRecommond=0” , “CK=36B05DD175F36398546F66CA5EFD07DE” , “rk=7.248395953793079071048” ] , “36B05DD175F36398546F66CA5EFD07DE” , “0.44047412515447847471” , i),
下面看下在fn内部进行的操作
定义变量A1=1,B1A=1,tan(9)的值为-0.452315659,第43行A1的值为-4,第49行执行完后A1的值为4,B1A的值为13,
接下来执行一个函数function(r, u, x, y, t, k),传进的参数为
( “36B05DD175F36398546F66CA5EFD07DE” , [ “http://flights.ctrip.com/domesticsearch/search/SearchFirstRouteFlights?DCity1=HRB“ , “ACity1=SHA” , “SearchType=S” , “DDate1=2016-05-13” , “IsNearAirportRecommond=0” , “rk=7.248395953793079071048” , “CK=” ] , 4 , 13 , i , “0.44047412515447847471” )
第54行l为 “36B05DD175F36398546F66CA5EFD07DE”被分割后的单个字符组成的数组。
第55行 将l中下标为13的元素删除并赋给变量c
第56行 将c插入到l中索引为5的位置
第57行 通过XMLHttpRequest对象获取json数据,方式为GET,访问的URL格式为:http://flights.ctrip.com/domesticsearch/search/SearchFirstRouteFlights?DCity1=HRB&ACity1=SHA&SearchType=S&DDate1=2016-05-13&IsNearAirportRecommond=0&rk=7.248395953793079071048&CK=336B05DD175F3698546F66CA5EFD07DE&r=0.44047412515447847471

三个参数取值结论

rk取值:16位长度的小数加上主页面传进来的6位长的字符串,因此rk长度为22位(不算小数点)
CK取值:主页面传进来CK参数,将第13位上的数移到第5位上去。其长度为32位
r取值:主页面传进来的参数值

爬虫完整实现

下面用Python实现完整的数据抓取过程。
不妨查询哈尔滨到上海5月15号的机票信息。思路:我们首先构造主页面URL,http://flights.ctrip.com/booking/hrb-sha-day-1.html?ddate1=2016-05-15,然后获取到响应的参数值并构造出rk、CK、r这三个参数值,然后访问那个包含json格式数据的网页,并获取数据。下面是Python的代码示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#coding:utf-8

import urllib2
from lxml import etree
import json
import random
import sys
reload(sys)
sys.setdefaultencoding('utf8')

def get_json2(date,rk,CK,r):
'''根据构造出的url获取到航班数据'''
url='http://flights.ctrip.com/domesticsearch/search/SearchFirstRouteFlights?DCity1=HRB&ACity1=SHA&SearchType=S&DDate1=%s&IsNearAirportRecommond=0&rk=%s&CK=%s&r=%s'%(date,rk,CK,r)
headers={'Host':"flights.ctrip.com",'User-Agent':"Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0",'Referer':"http://flights.ctrip.com/booking/hrb-sha-day-1.html?ddate1=2016-05-18"}
headers['Referer']="http://flights.ctrip.com/booking/hrb-sha-day-1.html?ddate1=%s"%date
req=urllib2.Request(url,headers=headers)
res=urllib2.urlopen(req)
content=res.read()
dict_content=json.loads(content,encoding="gb2312")
print len(dict_content['fis'])

def get_parameter(date):
'''获取重要的参数
date:日期,格式示例:2016-05-13
'''

url='http://flights.ctrip.com/booking/hrb-sha-day-1.html?ddate1=%s'%date
res=urllib2.urlopen(url).read()
tree=etree.HTML(res)
pp=tree.xpath('''//body/script[1]/text()''')[0].split()
CK_original=pp[3][-34:-2]
CK=CK_original[0:5]+CK_original[13]+CK_original[5:13]+CK_original[14:]

rk=pp[-1][18:24]
num=random.random()*10
num_str="%.15f"%num
rk=num_str+rk
r=pp[-1][27:len(pp[-1])-3]

return rk,CK,r

if __name__=='__main__':
date='2016-05-15'
rk,CK,r=get_parameter(date)
get_json2(date,rk,CK,r)

执行结果

1
41

在浏览器中搜索2016年5月15日的航班数确实是41条,如下图所示
浏览器中的搜索结果

总结

至此本次携程网机票信息抓取就告一段落了,上面提供了完整可运行的代码,可以一边参照本博客一边运行查看效果。当然如果想要支持任意两个地点的查询要先知道所有地点的英文缩写,可以把它存储在字典中;另外由于航班信息json数据比较大,用单线程读取效率比较低下,此时可以考虑使用多线程……还有很多可以完善的地方,这些内容就不在本文中展开了。
注意事项

  • 携程网站对于爬虫爬取的频率有限制,频率过高服务器会返回429错误,此时未登录用户将无法正确获取数据。因此建议登录账号后利用cookie进行数据的抓取,虽然登录后过于频繁也会导致429错误(我用Python开20个线程抓取不到10分钟就会出现此错误),但是只要等待3分钟后就可以继续爬取,而且爬取的数据不会出错(数据的正确性可以根据返回的json数据中的Error项来判断,Error代码为104说明数据出错)。
  • 即便采用账号登录的形式,不到几个小时cookie就会失效,因而需要不断地更新cookie值。
文章目录
  1. 1. 上篇回顾
  2. 2. 从主页面找切入点
    1. 2.1. r值的获取
    2. 2.2. CK和rk参数值的获取(如果只想看最终结果请自行跳到下一节)
    3. 2.3. 三个参数取值结论
  3. 3. 爬虫完整实现
  4. 4. 总结
,