query 0.1.20 → 0.1.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5dc06bdb2e9ceede735de7b49f1a89fc1345e53a
4
- data.tar.gz: 9befecea56311f4d67213a3f248a572f80d30f71
3
+ metadata.gz: 8d97911820949c91b6587056671a2e0fed35bcae
4
+ data.tar.gz: 5983436b291c0460ed974edd50e64db91bcac6b2
5
5
  SHA512:
6
- metadata.gz: 575ca83cd88cfefe3de691e7ed65708482a3436c80993b14f41a2fe24fd910de820e4da006e6081467abaf4a891a2dfeb079e7f0726de3c21773c6d8ffefa882
7
- data.tar.gz: 2c28dc21761d5fa6d83f85044dfe93129e4164e4ec4ade8401c2bc5ec8adb322d827960a1c3aea6ab2ae3ec0fc46100fe941f68b2130555e1e79d8660165aadd
6
+ metadata.gz: 2671cb7e7abc45bd0ced7dd29d659b896e00ba4ea3971d9391c224c23cd563a53db0ef64ba1e3dc7def2f09bd20137f06095ef66c8bfa98ceca857c87ba3e7cc
7
+ data.tar.gz: f88b43cdfb4668a73ce30dd1dbd6269dbeef28b22280c9e3f3c6441f7ff9ee747d7e0b40a160fb0d6cc7f4be66eb37f1d40e2dc557dd13935c6d74c4a4b17cc4
data/.gitignore CHANGED
@@ -30,3 +30,5 @@ lib/query/.DS_Store
30
30
  .tags
31
31
 
32
32
  .tags_sorted_by_file
33
+
34
+ .DS_Store
data/lib/query/result.rb CHANGED
@@ -48,6 +48,7 @@ require 'nokogiri'
48
48
  require "addressable/uri"
49
49
  require 'query/result/baidu'
50
50
  require 'query/result/baidu_mobile'
51
+ require 'query/result/baidu_mobile_api'
51
52
  require 'query/result/qihu'
52
53
  require 'query/result/qihu_mobile'
53
54
  require 'query/result/sogou'
@@ -0,0 +1,41 @@
1
+ module Query
2
+ module Result
3
+ class BaiduMobileApi
4
+ include Query::Result
5
+
6
+ def ads_top
7
+ @page.xpath("//div[@id='results']/div[@class='ec_wise_ad']//div[contains(@class,'ec_resitem ec_wise_pp')]").map.with_index do |div,index|
8
+ parse_ad(div).merge({rank: index + 1})
9
+ end
10
+
11
+ # @ads_top ||= @page.search("//div[@id='results']/div[@class='ec_wise_ad']/div/div").map.with_index do |div,index|
12
+ # parse_ad(div).merge({rank: index + 1})
13
+ # end
14
+ end
15
+
16
+ def ads_bottom
17
+ @page.xpath("//div[@id='results']/div[@class='ec_wise_ad']//div[@class='ec_resitem ec_wise_im']").map.with_index do |div,index|
18
+ parse_ad(div).merge({rank: index + 1})
19
+ end
20
+ # @ads_bottom ||= @page.search("//*[@class='result']/following-sibling::div[@class='ec_wise_ad']/div/div").map.with_index do |div,index|
21
+ # parse_ad(div).merge({rank: index + 1})
22
+ # end
23
+ end
24
+
25
+ private
26
+ def parse_ad(div)
27
+ host = div.search("span[@class='ec_site']").first
28
+ if host
29
+ host = host.text
30
+ {
31
+ text: div.search('a/text()').text.strip,
32
+ href: "http://#{host}",
33
+ host: host
34
+ }
35
+ else
36
+ {}
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
@@ -35,9 +35,9 @@ module Query
35
35
  def ads_right
36
36
  @page.search("//ul[@id='rightbox']/li").map.with_index do |li,index|
37
37
  a = li.search('a').first
38
- next unless a['e_href']
39
- href = CGI.parse(URI(a['e_href']).query)['aurl'].first
38
+ href = li.search("cite").first.text.downcase
40
39
  host = Addressable::URI.parse(URI.encode(href)).host
40
+ next if a.text.include?'想在360推广您的产品服务吗'
41
41
  {
42
42
  :rank => index + 1,
43
43
  :text => a.text,
data/lib/query/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Query
2
- VERSION = "0.1.20"
2
+ VERSION = "0.1.22"
3
3
  end
@@ -1,13 +1,25 @@
1
1
  #coding:UTF-8
2
2
  require 'spec_helper'
3
- describe Query::Result::Baidu do
4
- subject{Query::Result::Baidu.new(File.read($sample_baidu_api))}
3
+ describe Query::Result::BaiduMobileApi do
4
+ subject{Query::Result::BaiduMobileApi.new(File.read($sample_mbaidu_api))}
5
5
 
6
- describe '#ads_top' do
7
- specify{subject.ads_top.size.should == 3 }
6
+ it "has 3 top ads" do
7
+ subject.ads_top.size.should == 3
8
8
  end
9
9
 
10
- describe '#ads_left' do
11
- specify{subject.ads_left.size.should == 6 }
10
+ it "'s top ads should be elong,xiecheng and ctrip" do
11
+ subject.ads_top.first[:host].should == 'm.elong.com'
12
+ subject.ads_top[1][:host].should == 'xiecheng.com'
13
+ subject.ads_top[2][:host].should == 'm.ctrip.com'
14
+ end
15
+
16
+ it "has 3 bottom ads" do
17
+ subject.ads_bottom.size.should == 3
18
+ end
19
+
20
+ it "'s bottom ads should be booking, elong, jingling" do
21
+ subject.ads_bottom[0][:host].should == 'booking.com'
22
+ subject.ads_bottom[1][:host].should == 'touch.elong.cn'
23
+ subject.ads_bottom[2][:host].should == 'jinglinghotel.com'
12
24
  end
13
25
  end
data/spec/mbaidu1_spec.rb CHANGED
@@ -1,5 +1,4 @@
1
1
  #coding:UTF-8
2
- #coding:UTF-8
3
2
  require 'spec_helper'
4
3
  describe Query::Result::BaiduMobile do
5
4
  subject{Query::Result::BaiduMobile.new(File.read($sample_mbaidu1))}
@@ -0,0 +1,17 @@
1
+ #coding:UTF-8
2
+ require 'spec_helper'
3
+ describe Query::Result::Baidu do
4
+ subject{Query::Result::Baidu.new(File.read($sample_mbaidu_api))}
5
+
6
+ describe '#ads_top' do
7
+ it "finds 3 ads on top" do
8
+ expect(subject.ads_top.size).to eq 3
9
+ end
10
+ end
11
+
12
+ describe '#ads_left' do
13
+ it "finds 6 ads on the bottom" do
14
+ expect(subject.ads_left.size).to eq 6
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,391 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <!--STATUS OK-->
4
+ <head>
5
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
6
+ <meta name="viewport" content="width=device-width,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no"/>
7
+ <meta name="format-detection" content="telephone=no"/>
8
+ <noscript>
9
+ <style type="text/css">#page{display:none;}</style>
10
+ <meta http-equiv="refresh" content="0; URL=http://hz.inner.wap.baidu.com:9080/s?nbid=6AE06641BF8AB1C02F0C999E93160584&amp;bd_page_type=1&amp;amp;pu=sz%401321_480&amp;amp;rn=10&amp;amp;usm=0&amp;amp;icolor=nosamp&amp;amp;noscript=1&amp;pn=0&amp;uip=119.143.56.255&amp;from=1001134a&amp;word=%E5%8C%97%E4%BA%AC%E9%85%92%E5%BA%97%E9%A2%84%E8%AE%A2&amp;t_noscript=jump" />
11
+ </noscript>
12
+ <link rel="apple-touch-icon-precomposed" href="javascript:void(0)" />
13
+ <title>北京酒店预订 - 百度</title>
14
+ <style id="search_ls_css_top">*{margin:0;padding:0}body{text-align:center;font-size-adjust:none;-webkit-text-size-adjust:none;font:14px Arial,Helvetica,sans-serif}input[type=search]:focus{background-color:transparent}input[type=search]::-webkit-search-cancel-button{display:none}input,button{border:0;border-radius:0;-webkit-border-radius:0;background-color:transparent;-webkit-appearance:none;-webkit-box-sizing:border-box}#page_bd{background-color:#eee;overflow:hidden}#results{text-align:left;padding:0 6px}a{color:#00C;text-decoration:none}em{color:#c00;text-decoration:none;font-style:normal}.atext{color:#00C;font-size:120%}.result_title{text-align:left;font-size:120%;word-break:break-all;line-height:20px;padding:6px 6px 8px;margin:0 -6px;display:block}.result_title .result_title_abs{color:#262626;word-break:break-all;font-size:14px;line-height:21px;margin:7px 0 -10px 0}.result .result_snippet,.result .abs{line-height:20px;color:#262626;word-break:break-all;padding:0 0 7px}.result_url{color:#2dbe00}.site,.date,.size{font-size:14px;color:#1f992f}.gray{color:#666}.result_title img{width:10px;height:14px}#pinyin{text-align:left;border:1px solid #e0e0e0;background:#fff;margin:6px;padding:10px;line-height:18px}#pinyin a{color:#c00}#pinyin a.original_q{color:#00c;word-break:break-all}a.result_title:visited{color:purple}a.result_title:visited .result_title_abs{color:#242424!important}a.result_title:visited .result_title_abs em{color:#c30a00!important}.card-result{border:0!important;padding:0!important}.result,.resitem{padding:5px 10px 9px;margin:6px 0;background:#fff;border:1px solid #e0e0e0}.se-form{position:relative;clear:both;margin:6px 6px 0;background:#fff;height:39px;border:1px solid #8d8d8d}.con-wrap{display:box;display:-webkit-box}.se-inner{width:74px;position:relative;right:0}.se-input,.se-encode{display:block;-webkit-box-flex:1;box-flex:1;margin:2px 0;padding:6px 39px 6px 6px;font-size:18px;line-height:24px;-webkit-appearance:none;-webkit-box-sizing:border-box;-webkit-tap-highlight-color:rgba(255,255,255,0);background:#fff!important}.se-bn{color:#000;text-shadow:0 1px 1px #fff;-webkit-text-shadow:0 1px 1px #fff;background:-webkit-gradient(linear,left top,left bottom,from(#f5f4f4),to(#e8e8e8));text-align:center;white-space:nowrap;font-size:0;width:74px;height:39px;line-height:39px;position:absolute;top:0;right:0;z-index:2;border-left:1px solid #8d8d8d;letter-spacing:-1px}.se-bn span{font-weight:700;font-style:normal;font-size:16px}.cross{position:absolute;top:0;left:-35px;width:35px;height:39px;bottom:0;display:none;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACoAAAAqCAYAAADFw8lbAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAqFJREFUWEfFmclOAzEMQFsWsS/iyFr2HQr8/1fBhQMIv1FThSEZO560RLJamCwvju143OHA34YydEtkU2RNZHUiYcZP+fIlwifyIfIu8u1fsmzkunQ/ERmLvBXKi/Q/nWywbNWC3mjtshCsayM3k9MoQOjuyhEfirxWhIw3MJJ5F/rSLskEVzMCjGHvZI0VLyxH/TgHyAD87LFdID3OUupc7f6Y165Vsxz3wxw12YYlMmxosDjO9T9CBmhMDoVlG96tHd+ToY82B/ao9SHeJhuBXAtBZ9KHUMKntlDu+cVkDkC0ObZTpEzQNRA4TIPGpweWNeI5NNjbNija7ILEucICYWwpbAwZ5uB0NFPaiWG5u7VjwH7bzQqbgmTsuWFd+jSNXVmMm414YPtAsiZ+00QA0jRNm/HzEti+kGHdPUD3C0GtmiXTStm15bjbijsG1DNQg60JyVqkhIN7h0bDjnNmUEuTccJidqScHadg4+hg9W7NT9TbSJsgZwbA1oJkjSqgKZsMoJ4bLKWc3kefgwzHb70UtJPr5Uw5745ttIZmuZDc4QnI9ktZsMmSS0HT5DQ8eQJ+F6QWujw22wT80ivUAlkbtrlCS5KSEshasNOkBFhLmueBrAE7TfMA1RJnktuc41icIXcpFCfOwGp1pVGUDXlvnDgaWOIrFZQ/zfJyByxa8GZcQbMWSPr+eg2JiY/kD+0otXccbTzPLQUOwli2sVNyP8tis+yjFiDYAe8nNbTm3YippBNUjb0ywLuYd1xRkSzAUqiad9kxWRnpstXwbHlONotzuQu5AZZwRDTQ6lLe46ass2jRmrUPO/ZkPrkNcMHgCzNr2C65gScyjGXczH++Se2cH8QORNAOlbe4NETU4H/8WMHViaO0X6PN2vwBXtDwHrylQ1oAAAAASUVORK5CYII=) no-repeat scroll center center transparent;z-index:2;background-size:16px 16px;-webkit-background-size:16px 16px}#footer_wrap{padding:6px 0;border-top:1px solid #e0e0e0;-webkit-box-shadow:0 1px 0 #d0d0d0 inset}.result_official{display:inline-block;vertical-align:top;margin-top:3px;text-align:center;background:#7AADF4;height:13px;line-height:13px;font-size:12px;color:#fff;border-radius:1px;-webkit-border-radius:1px;padding:1px 2px}.recommend_wrap{display:none;margin:5px -10px -9px;border-top:1px solid #e0e0e0;background-color:#fafafa}.recommend_wrap a{color:#00c;line-height:21px;padding:8px 10px 7px;display:block}.recommend_wrap a:after{content:"";background:url(http://m.baidu.com/static/ala/weibo/arrow-b01.png) no-repeat center;background-size:8px 8px;display:inline-block;height:8px;width:8px;padding-left:8px}#search-card #page_bd .loading,#search-card #page_bd .loadedtips{min-height:480px}#search-card #page_bd .loading{color:#666;font-size:14px}#search-card #page_bd .loading .ico-loading{background:url(http://m.baidu.com/static/search/ico-bdlogo.png) left top no-repeat;-webkit-background-size:21px 24px;width:21px;height:24px;margin:145px auto 27px}#search-card #page_bd .loading .ico-rotate{border:2px solid #e2e2e2;border-left:2px solid #598edc;width:40px;height:40px;-webkit-border-radius:50em;border-radius:50em;left:-11px;top:-9px;-webkit-animation:rotating 700ms linear infinite}@-webkit-keyframes rotating{0%{-webkit-transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg)}}#search-card #page_bd .loadedtips{background:url(http://m.baidu.com/static/search/load-bg.jpg) center 112px no-repeat;background-size:63px 51px;-webkit-background-size:63px 51px;padding:173px 0 0}#search-card #page_bd .loadedtips .btn{color:#333;border:1px solid #d7d7d7;background:-webkit-gradient(linear,left top,left bottom,from(#f6f6f6),to(#f0f0f0));width:97px;padding:10px 0;margin:10px auto 0;-webkit-box-shadow:0 1px 0 rgba(215,215,215,.3)}#page{position:relative}textarea.se-input{border:0;border-radius:0;-webkit-border-radius:0;background-color:transparent;-webkit-appearance:none;-webkit-box-sizing:border-box;margin:0;padding:7px 39px 7px 6px;height:39px;line-height:28px;resize:none;overflow:hidden;font-family:Arial,Helvetica,sans-serif}.suggest-div{top:1px!important}.input_hidden{font-family:Arial,Helvetica,sans-serif;border-radius:0;-webkit-border-radius:0;background-color:transparent;-webkit-appearance:none;-webkit-box-sizing:border-box;margin:0;resize:none;padding:7px 39px 7px 6px;text-align:left;font-size:18px;position:absolute;left:6px;top:0;visibility:hidden;border:1px solid #fff;z-index:-10;height:39px}.input_hidden::-webkit-scrollbar{width:0;background-color:transparent}.adjust-input{margin:0 -74px 0 0;line-height:29px;position:relative;word-break:break-all;word-wrap:nowrap}.adjust-input+.se-inner::before{position:absolute;content:" ";top:0;left:-14px;width:14px;height:37px;z-index:9;background:#fff}.cross,.callicon-wrap{background:#fff}.se_box{position:absolute!important;width:100%}#onlyanswer-more{padding:6px 6px 12px;margin:0;border-bottom:1px solid #d0d0d0;-webkit-box-shadow:inset 0 0 0 #eee,inset 0 0 0 #eee,inset 0 -1px 0 #e0e0e0,inset 0 0 0 #eee}#onlyShow-actionBar{position:absolute;bottom:0;left:0;right:0;padding:16px 8px 4px;overflow:hidden;color:#e3e3e3}#onlyShow-actionBar .onlyShow-more{padding:10px 10px 8px 8px;float:left;font-size:12px;line-height:12px}#onlyShow-actionBar .onlyShow-feedback a{padding:11px 8px 8px;float:right;font-size:11px;line-height:12px;color:#e3e3e3;font-style:italic;text-decoration:underline}#head,#head .logo,#more,.loading .ico-rotate{position:relative}#head .logo,.h_tab,.loading .ico-rotate,.arrow{display:block}.searchboxtop{border-bottom:1px solid #e0e0e0;padding-bottom:7px;-webkit-box-shadow:inset 0 0 0 #fff,inset 0 0 0 #fff,inset 0 -1px 0 #d0d0d0,inset 0 0 0 #fff}#head{font-weight:700;font-size:14px;padding-top:37px}#head .logo{position:absolute;background:url(http://m.baidu.com/static/search/resultLogo2.png) no-repeat;width:72px;height:23px;background-size:72px 23px;-webkit-background-size:72px 23px;top:10px;left:6px}#h_tabs{position:absolute;margin-right:6px;color:#262626;width:69%;top:0;right:6px}.h_tab{position:relative;float:left;width:20%;color:#262626}.tabTx{position:relative;display:block;padding:14px 5px 10px;border-top:2px solid transparent}.cur{color:#00c;background:-webkit-gradient(linear,left top,left bottom,from(#dde9ff),to(#ecf3ff));border-top:2px solid #2c73df}#mo{padding-bottom:2px}.more_show{color:#00c}.arrow{display:inline-block;position:absolute;font-size:0;height:0;line-height:0;width:0;border-style:solid;border-color:#777 #fff #fff;border-width:4px 4px 0;top:19px;right:-5px}.arrow_show{border-color:#fff #fff #2d73df;border-width:0 4px 4px}#more{clear:both;margin:6px 0 0;display:none;border-top:1px solid #e0e0e0;border-bottom:1px solid #e0e0e0;background:#f9f9f9;-webkit-box-shadow:inset 1px 0 0 #f9f9f9,inset 0 1px 0 #f0f0f0,inset 0 -1px 0 #f0f0f0,inset -1px 0 0 #f9f9f9;padding:16px 0}.more_links{margin:0 10px;text-align:center}.more_links:last-child{margin-top:19px}.more_links a{display:inline-block;width:25%;color:#262626}</style>
15
+ </head>
16
+ <body data-version="b61ffbcab5b214df">
17
+ <div id="page">
18
+ <div id="page_hd">
19
+ <div id="head">
20
+ <a id="logo" class="logo" href="javascript:void(0)" ></a>
21
+ <div id="h_tabs">
22
+ <a class="h_tab" href="javascript:void(0)" >
23
+ <span class="tabTx cur" id="wy">网页</span>
24
+ </a>
25
+ <a class="h_tab" href="javascript:void(0)" >
26
+ <span class="tabTx">地图</span>
27
+ </a>
28
+ <a class="h_tab" href="javascript:void(0)" >
29
+ <span class="tabTx">贴吧</span>
30
+ </a>
31
+ <a class="h_tab" href="javascript:void(0)" >
32
+ <span class="tabTx">应用</span>
33
+ </a>
34
+ <a class="h_tab" id="switchBt">
35
+ <span id="mo" class="tabTx more">
36
+ 更多
37
+ <span id="arr" class="arrow top"></span>
38
+ </span>
39
+ </a>
40
+ </div>
41
+ <div id="more">
42
+ <div class="more_links">
43
+ <a href="javascript:void(0)" >新闻</a>
44
+ <a href="javascript:void(0)" >知道</a>
45
+ <a href="javascript:void(0)" >百科</a>
46
+ <a href="javascript:void(0)" >图片</a>
47
+ </div>
48
+ <div class="more_links">
49
+ <a href="javascript:void(0)" >小说</a>
50
+ <a href="javascript:void(0)" >文库</a>
51
+ <a href="javascript:void(0)" >音乐</a>
52
+ <a href="javascript:void(0)" >视频</a>
53
+ </div>
54
+ </div>
55
+ </div>
56
+ <div class="searchboxtop">
57
+ <form data-formposition="t" class="se-form" id="se-form" action="/from=1001134a/s" method="get" autocomplete="off">
58
+ <div class="con-wrap">
59
+ <textarea autocomplete="off" autocorrect="off" maxlength="64" id="kw" name="word" class="se-input adjust-input">北京酒店预订</textarea>
60
+ <div class="se-inner">
61
+ <div id="cross" class="cross"></div>
62
+ <div class="callicon-wrap">
63
+ <div class="baiduapp-icon"></div>
64
+ <div class="baiduappcall-wrap">
65
+ <div class="qrcode call" data-ac="active"></div>
66
+ <div class="voice call" data-ac="active"></div>
67
+ </div>
68
+ </div>
69
+ <button id="se_bn" class="se-bn" type="submit">
70
+ <span>百度一下</span>
71
+ </button>
72
+ </div>
73
+ </div>
74
+ <div id="se_box" class="se_box"></div>
75
+ <input type="hidden" name="st" value="111041"/>
76
+ <input type="hidden" name="sa" value="tb"/>
77
+ <input type="hidden" name="ts" value="0"/>
78
+ </form>
79
+ </div>
80
+ </div>
81
+ <style id="css_onlyanswer" type="text/css"></style>
82
+ <style type="text/css" id="ec_ls_css">/*<![CDATA[*/.ec_ad_results{margin:-2px 0;}.ec_keyword,.ec_keyword a{color:#c60a00;}.ec_tg{font-size:12px;color:#999;margin-left:8px;}.ec_resitem{background:#fff;border:1px solid #e0e0e0;text-align:left;border-bottom:1px solid #E8E8E8;word-break:break-all;padding:10px 10px 0;margin:6px 0 -2px;overflow:hidden;}.ec_resitem .ec_site{color:#1F992F;}.ec_title{display:block;font-size:17px;}.ec_tit{padding:0 10px 0 0;}.ec_desc{font-size:14px;color:#262626;margin:5px 0 4px;line-height:20px;}.ec_url{margin:3px 0 0 0;padding:0 0 8px;white-space:nowrap;clear:both;}.ec_xiaobao{margin:6px -7px -36px 0;padding:1px 0;text-align:right;overflow:hidden;height:28px;}.ec_xiaobao a{background:url(http://ms.bdimg.com/mobcard-upload-image-to-bcs/%2Fmobi52de0775ad384.png) no-repeat 2px 5px;height:24px;width:24px;background-size:16px;padding:4px 6px 0 0;display:inline-block;}.ec_urlbtn{display:inline;float:right;position:relative;background:#FFF;}.ec_tgsk,.ec_tgsk .ec_urlbtn{background:#f5f5f5;}.ec_brandAd{background:#FFF;}.ec_youxuan_cnt{font-size:14px;padding:5px 0 1px;}.ec_youxuan_abs{background:url("http://ms.bdimg.com/mobcard-upload-image-to-bcs/%2Fmobi531805c239086.png") no-repeat 0 0;background-size:36px;color:#262626;display:block;height:36px;line-height:18px;overflow:hidden;padding:0 0 0 46px;}.ec_phone{font-size:14px;display:inline-block;height:16px;margin:-2px -2px -8px 0;padding:2px;}.ec_icon_tel{display:inline-block;width:14px;height:14px;margin:1px 5px 0 0;line-height:14px;vertical-align:text-top;background:url(http://ms.bdimg.com/mobcard-upload-image-to-bcs/%2Fmobi52ce75c0b0f34.png) no-repeat 0 -20px;background-size:14px;}.ec_resitem .ec_vlogo{margin:0 0 0 3px;}.ec_vtip{font-size:12px;color:#777;margin:6px 0 0 0;display:none;}.ec_v_icon{width:14px;height:14px;background:url(http://ms.bdimg.com/mobcard-upload-image-to-bcs/%2Fmobi5333d165356a0.png) no-repeat;background-size:14px;background-position:0 3px;margin:0 5px;display:inline-block;vertical-align:-2px;}.ec_v_2{background-position:0 -17px;}.ec_v_3{background-position:0 -37px;}.ec_v_icontip{font-size:12px;color:#999;}.ec_app{font-size:14px;display:block;margin:-2px 0;line-height:22px;}.ec_app img{display:block;margin-right:8px;float:left;}/*]]>*/</style>
83
+ <div id="page_bd">
84
+ <div id="page_tips"></div>
85
+ <div id="results" class="results">
86
+ <div class="ec_wise_ad">
87
+ <div class="ec_ad_results">
88
+ <div class="ec_xiaobao">
89
+ <a href="javascript:void(0)" ></a>
90
+ </div>
91
+ <div class="ec_resitem ec_wise_pp">
92
+ <link href='http://m.elong.com' rel='dns-prefetch' />
93
+ <a class="ec_title" href="javascript:void(0)" > <em>北京酒店预订</em>
94
+ ,订今日特价房,比主..
95
+ <span class="ec_icon_phone"></span>
96
+ <div class="ec_desc"> <em>北京酒店预订</em>
97
+ ,艺龙手机站
98
+ <em>预订</em>
99
+ 更省钱!专享今日特价
100
+ <em>酒店</em>
101
+ ,比艺龙主站节省30%以上!北..
102
+ </div>
103
+ </a>
104
+ <div class="ec_url">
105
+ <div class="ec_urlbtn">
106
+ <a class="ec_phone ec_async_phone" data-fclick="{sourceid:'601', posid:'1',rank:'0'}" cal="tel:4009968765" href="javascript:void(0)" >
107
+ <span class="ec_icon_tel"></span>
108
+ 电话咨询
109
+ </a>
110
+ </div>
111
+ <span class="ec_site">m.elong.com</span>
112
+ <span class="ec_vlogo" data-fclick='{"sourceid":"601", "posid":"1", "rank":"0", "mt":"1017_2001_2011_2100_"}' data-pos="0">
113
+ <span class="ec_v_icon ec_v_3"></span>
114
+ <span class="ec_v_icontip">推广</span>
115
+ </span>
116
+ <div class="ec_vtip" id="ec_vtip0">成长值:99&nbsp;|&nbsp;充分信誉积累,可持续信赖</div>
117
+ </div>
118
+ </div>
119
+ <div class="ec_resitem ec_wise_pp">
120
+ <link href='http://m.ctrip.cn' rel='dns-prefetch' />
121
+ <a class="ec_title" href="javascript:void(0)" >
122
+ <em>北京酒店预订</em>
123
+ 「携程网」2折起,免..
124
+ <span class="ec_icon_phone"></span>
125
+ <div class="ec_desc">
126
+ 「住哪里都上携程」
127
+ <em>北京酒店预订</em>
128
+ 返现高..
129
+ </div>
130
+ </a>
131
+ <a class="ec_app" href="javascript:void(0)" >
132
+ <img src="http://ms.bdimg.com/mobcard-upload-image-to-bcs/mobipic53adfe7565f2a3245522.png" alt="图片" width="22" height="22" />
133
+ 立即下载: 携程旅行
134
+ </a>
135
+ <div class="ec_url">
136
+ <span class="ec_site">xiecheng.com</span>
137
+ <span class="ec_vlogo" data-fclick='{"sourceid":"601", "posid":"1", "rank":"1", "mt":"1017_2002_2011_"}' data-pos="1">
138
+ <span class="ec_v_icon ec_v_3"></span>
139
+ <span class="ec_v_icontip">推广</span>
140
+ </span>
141
+ <div class="ec_vtip" id="ec_vtip1">成长值:100&nbsp;|&nbsp;充分信誉积累,可持续信赖</div>
142
+ </div>
143
+ </div>
144
+ <div class="ec_resitem ec_wise_pp ec_adv_last" id="ec_wise_adtopnum" adtopnum="8">
145
+ <link href='http://m.ctrip.com' rel='dns-prefetch' />
146
+ <a class="ec_title" href="javascript:void(0)" >
147
+ <em>北京酒店预订预订</em>
148
+ 「携程网」2折起!
149
+ <span class="ec_icon_phone"></span>
150
+ <div class="ec_desc">
151
+ <em>北京</em>
152
+ 便宜
153
+ <em>酒店</em>
154
+ 上携程,全网特价
155
+ <em>预订</em>
156
+ 2折起,订
157
+ <em>酒店</em>
158
+ 享受超低折扣,优惠超多!「住哪里都..
159
+ </div>
160
+ </a>
161
+ <div class="ec_url">
162
+ <div class="ec_urlbtn">
163
+ <a class="ec_phone ec_async_phone" data-fclick="{sourceid:'601', posid:'1',rank:'2'}" cal="tel:4000517915" href="javascript:void(0)" >
164
+ <span class="ec_icon_tel"></span>
165
+ 电话咨询
166
+ </a>
167
+ </div>
168
+ <span class="ec_site">m.ctrip.com</span>
169
+ <span class="ec_vlogo" data-fclick='{"sourceid":"601", "posid":"1", "rank":"2", "mt":"1017_2001_2011_"}' data-pos="2">
170
+ <span class="ec_v_icon ec_v_3"></span>
171
+ <span class="ec_v_icontip">推广</span>
172
+ </span>
173
+ <div class="ec_vtip" id="ec_vtip2">成长值:100&nbsp;|&nbsp;充分信誉积累,可持续信赖</div>
174
+ </div>
175
+ </div>
176
+ </div>
177
+ </div>
178
+ <div class="ec_wise_ad">
179
+ <div class="ec_ad_results">
180
+ <div class="ec_resitem ec_wise_im">
181
+ <link href='http://m.booking.com' rel='dns-prefetch' />
182
+ <a class="ec_title" href="javascript:void(0)" >
183
+ 缤客网!
184
+ <em>北京酒店预订</em>
185
+ 2折起!
186
+ <span class="ec_icon_phone"></span>
187
+ <div class="ec_desc">
188
+ Booking.com缤客网,全球领先
189
+ <em>酒店预订</em>
190
+ 网站.日均订房间夜数超过60万提供全球50万多..
191
+ </div>
192
+ </a>
193
+ <div class="ec_url">
194
+ <span class="ec_site">booking.com</span>
195
+ <span class="ec_vlogo" data-fclick='{"sourceid":"601", "posid":"2", "rank":"0", "mt":"1017_2011_"}' data-pos="3000">
196
+ <span class="ec_v_icon ec_v_3"></span>
197
+ <span class="ec_v_icontip">推广</span>
198
+ </span>
199
+ <div class="ec_vtip" id="ec_vtip3000">成长值:97&nbsp;|&nbsp;充分信誉积累,可持续信赖</div>
200
+ </div>
201
+ </div>
202
+ <div class="ec_resitem ec_wise_im">
203
+ <link href='http://touch.elong.cn' rel='dns-prefetch' />
204
+ <a class="ec_title" href="javascript:void(0)" >
205
+ <em>北京酒店预订</em>
206
+ ,手机下单,返现高达..
207
+ <span class="ec_icon_phone"></span>
208
+ <div class="ec_desc">
209
+ <em>北京酒店预订</em>
210
+ ,手机
211
+ <em>预订</em>
212
+ 更省钱!同等房型,手机下单比主站多返5元!
213
+ <em>北京酒店预订</em>
214
+ ,手机..
215
+ </div>
216
+ </a>
217
+ <div class="ec_url">
218
+ <div class="ec_urlbtn">
219
+ <a class="ec_phone ec_async_phone" data-fclick="{sourceid:'601', posid:'2',rank:'1'}" cal="tel:4009968765" href="javascript:void(0)" >
220
+ <span class="ec_icon_tel"></span>
221
+ 电话咨询
222
+ </a>
223
+ </div>
224
+ <span class="ec_site">touch.elong.cn</span>
225
+ <span class="ec_vlogo" data-fclick='{"sourceid":"601", "posid":"2", "rank":"1", "mt":"1017_2001_2011_"}' data-pos="3001">
226
+ <span class="ec_v_icon ec_v_3"></span>
227
+ <span class="ec_v_icontip">推广</span>
228
+ </span>
229
+ <div class="ec_vtip" id="ec_vtip3001">成长值:99&nbsp;|&nbsp;充分信誉积累,可持续信赖</div>
230
+ </div>
231
+ </div>
232
+ <div class="ec_resitem ec_wise_im">
233
+ <link href='http://www.jinglinghotel.com' rel='dns-prefetch' />
234
+ <a class="ec_title" href="javascript:void(0)" >
235
+ <em>北京酒店预订</em>
236
+ -去哪?立即
237
+ <em>预订</em>
238
+ 吧!
239
+ <span class="ec_icon_phone"></span>
240
+ <div class="ec_desc">
241
+ 在线
242
+ <em>北京酒店预订</em>
243
+ ! 精选优质!
244
+ <em>北京酒店预订</em>
245
+ 00%有房,价格超给力!
246
+ <em>北京酒店预订</em>
247
+ 一站式..
248
+ </div>
249
+ </a>
250
+ <div class="ec_url">
251
+ <div class="ec_urlbtn">
252
+ <a class="ec_phone ec_async_phone" data-fclick="{sourceid:'601', posid:'2',rank:'2'}" cal="tel:01068715588" href="javascript:void(0)" >
253
+ <span class="ec_icon_tel"></span>
254
+ 电话咨询
255
+ </a>
256
+ </div>
257
+ <span class="ec_site">jinglinghotel.com</span>
258
+ <span class="ec_vlogo" data-fclick='{"sourceid":"601", "posid":"2", "rank":"2", "mt":"1017_2001_2011_"}' data-pos="3002">
259
+ <span class="ec_v_icon ec_v_1"></span>
260
+ <span class="ec_v_icontip">推广</span>
261
+ </span>
262
+ <div class="ec_vtip" id="ec_vtip3002">成长值:14&nbsp;|&nbsp;基础信誉积累,可放心访问</div>
263
+ </div>
264
+ </div>
265
+ <div class="ec_resitem ec_wise_im ec_tgsk">
266
+ <link href='http://siteapp.baidu.com' rel='dns-prefetch' />
267
+ <a class="ec_title" href="javascript:void(0)" >
268
+ <em>北京酒店预订</em>
269
+ 2-6折免费低价
270
+ <em>预订</em>
271
+ <div class="ec_desc">
272
+ 旅程订房网超低价2-6折
273
+ <em>预订北京酒店预订</em>
274
+ ,更省钱,更方便专业有保障!是商务旅行者好..
275
+ </div>
276
+ </a>
277
+ <div class="ec_url">
278
+ <span class="ec_site">868e.com</span>
279
+ <span class="ec_tg">推广</span>
280
+ </div>
281
+ </div>
282
+ <div class="ec_resitem ec_wise_im ec_tgsk">
283
+ <link href='http://m.LY.com' rel='dns-prefetch' />
284
+ <a class="ec_title" href="javascript:void(0)" >
285
+ <em>北京酒店</em>
286
+ 查询
287
+ <em>预订</em>
288
+ 2折起
289
+ <div class="ec_desc">
290
+ <em>北京酒店</em>
291
+ ,手机
292
+ <em>预订</em>
293
+ 更方便,到店付款,有房保障
294
+ </div>
295
+ </a>
296
+ <div class="ec_url">
297
+ <span class="ec_site">touch.17u.cn</span>
298
+ <span class="ec_tg">推广</span>
299
+ </div>
300
+ </div>
301
+ <div class="ec_resitem ec_wise_im ec_tgsk">
302
+ <link href='http://m.998.com' rel='dns-prefetch' />
303
+ <a class="ec_title" href="javascript:void(0)" >
304
+ <em>北京酒店预订</em>
305
+ —全国1000多家
306
+ <em>酒店</em>
307
+ ..
308
+ <div class="ec_desc">
309
+ <em>北京酒店预订</em>
310
+ 到格林豪泰[官网]! .免费注册即送100元! .会员
311
+ <em>预订</em>
312
+ 享多倍积分!.格林..
313
+ </div>
314
+ </a>
315
+ <div class="ec_url">
316
+ <span class="ec_site">m.998.com</span>
317
+ <span class="ec_tg">推广</span>
318
+ </div>
319
+ </div>
320
+ <div class="ec_resitem ec_wise_im ec_tgsk">
321
+ <link href='http://m.ly.com' rel='dns-prefetch' />
322
+ <a class="ec_title" href="javascript:void(0)" >
323
+ <em>北京酒店预订</em>
324
+ _
325
+ <em>北京酒店</em>
326
+ !
327
+ <div class="ec_desc">
328
+ <em>北京酒店预订</em>
329
+ ,
330
+ <em>北京</em>
331
+ 住宿,今日特价,一键
332
+ <em>预订</em>
333
+ ,就上同程旅游!
334
+ </div>
335
+ </a>
336
+ <div class="ec_url">
337
+ <span class="ec_site">m.ly.com</span>
338
+ <span class="ec_tg">推广</span>
339
+ </div>
340
+ </div>
341
+ <div class="ec_resitem ec_wise_im ec_tgsk ec_adv_last">
342
+ <link href='http://siteapp.baidu.com' rel='dns-prefetch' />
343
+ <a class="ec_title" href="javascript:void(0)" >
344
+ 价格线-
345
+ <em>北京酒店预订</em>
346
+ 大优惠
347
+ <div class="ec_desc">
348
+ 预付价帮您节省30-40%
349
+ <em>预订</em>
350
+ 高品质
351
+ <em>酒店</em>
352
+ ,
353
+ <em>北京酒店预订</em>
354
+ 节省您的旅行!
355
+ </div>
356
+ </a>
357
+ <div class="ec_url">
358
+ <span class="ec_site">jiagexian.com</span>
359
+ <span class="ec_tg">推广</span>
360
+ </div>
361
+ </div>
362
+ </div>
363
+ </div>
364
+ </div>
365
+ <div id="page_controller"></div>
366
+ <div id="page_relative" ></div>
367
+ </div>
368
+ <div id="page_ft" >
369
+ <div class="footerlink"></div>
370
+ </div>
371
+ <div id="page_copyright">
372
+ <div class="return-link">
373
+ <a class="return-index brand_bear" href="javascript:void(0)" >百度首页</a>
374
+ <a class="feedback brand_bear" href="javascript:void(0)" >用户反馈</a>
375
+ </div>
376
+ <div id="layout_switch"> <b class="switch_to_iphone">触屏版</b>
377
+ <a href="javascript:void(0)" class="switch_to_utouch">极速版</a>
378
+ </div>
379
+ <div id="foot_logo">
380
+ <a id="logo" class="logo" href="javascript:void(0)" ></a>
381
+ </div>
382
+ <div id="copyright">Baidu&#160;京ICP证030173号</div>
383
+ </div>
384
+ <textarea class="input_hidden"></textarea>
385
+ <div id="foot-blank"></div>
386
+ <input type="hidden" data-path="/from=1001134a"data-prepath="ssid=0#from=1001134a#bd_page_type=1#uid=0#pu=usm%400%2Csz%401320_1003%2Cta%40iphone_2_4.0_1_9.1#baiduid=6AE06641BF8AB1C0A08CDD78E9C6CBFD"data-query="北京酒店预订"data-prequery="北京酒店预订"data-lid="4098530748671556359"data-ref="www_iphone"data-pn="0"data-st="111041"data-nst="111081"data-tn=""data-hasNP=""data-sa="tb"data-ts="0"data-ms="0"data-usm="0"data-tanet="1"data-taspeed="210"data-vit=""data-browser="ucweb+applewebkit"data-iphoneid="47913"data-gps="native"data-onlyShow=""data-spd="210"data-adflag="1"data-prefetch="0"data-spa="0"data-spath="from=1001134a"id="commonBase" name="commonBase" />
387
+ </div>
388
+ <style id="search_ls_css_btm">#relativewords{text-align:left;border:1px solid #e0e0e0;background-color:#fff;margin:12px 6px}.rw-title{font-size:17px;height:41px;line-height:45px;color:#262626;padding:0 10px;border-bottom:1px solid #f0f0f0}.rw-list{padding:7px 10px;font-size:14px}.rw-item{display:inline-block;width:50%;white-space:nowrap;height:35px;line-height:35px;overflow-x:hidden;text-overflow:clip}.rw-item:nth-child(2n):before{content:"";border-left:1px solid #dadada;margin-right:8px}.pagenav{margin:12px 6px;font-size:14px}.pagenav .pagebar,.pagenav .loadingbar{position:relative;color:#262626;font-size:17px;height:50px;line-height:50px}.pagenav .pagebar,noscript a{color:#262626;border:1px solid #d0d0d0;background-color:#fff;-webkit-box-shadow:0 1px 0 #e0e0e0}a.pagebar{display:block}.pagebar .ico{display:inline-block;position:relative;font-size:0;height:0;line-height:0;width:0;border-style:solid;border-color:#777 #fff #fff;border-width:4px 4px 0;left:4px;top:-4px}.pagenav .loadingbar{position:relative;border:1px solid #eee;background-color:#eee}.pagenav .sysbar{padding:5px 0;color:#262626}.loadingbar .ico{display:inline-block;background:url(http://m.baidu.com/static/search/ico_loading.gif) left top no-repeat;background-size:40px 24px;-webkit-background-size:40px 24px;width:40px;height:24px;position:relative;left:-6px;top:6px}.sysbar .btn-act{background:#fff;border:1px solid #e0e0e0;font-size:13px;display:inline-block;padding:6px 10px 7px}.sp-rslt-bar{padding:0 10px;margin:6px;height:20px;line-height:20px;color:#262626;font-size:12px;z-index:1}.suggest-logo,.brand_bear:before{background:url(http://m.baidu.com/static/search/sug_logo.png) no-repeat;position:relative;display:inline-block;content:"";background-size:15px 15px;-webkit-background-size:15px 15px;width:15px;height:15px;top:2px;margin:0 4px 0 0}.pagebar:before{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAABzklEQVRIx2P4//8/w0BgFI5FzGN8uAmI/wPxVSBmwaGGA4iZqWlxA9RSZIyuZgWSXBy1LP6PBWsRcJgmpRbL4LC4Gil4scl/ptRiTRwGT4LK++OQ/0+pxQI4DI6DyhfgkH9GqsWmQOwKxIwE4pgDKueFQ96eFIsfoWkWhBquiCY+FclRLFgsfU10qgYqNsbhcpgFIEeUArEllugQA+IHUPVTkMwUBmJrIJbEZ/EBHBYbEChY4Bgt9DrRzHmEy+L/OHA4qRYD2Ww4zEomxWI3LJZIAXEENCuxYbHYkFAWQ1bcg0OxGJKFTKCCAYuaYjSL3UmxGFvqvIPm0994QiYJySw7oi2GagDlzXlAfAKII4moKNCxCNQccRzyW0itJByJsBSGmaBmPcMiJ0yKxd548jYuy2Hm6QBxLhDHgEKTlLK6gkChgs/njORWEsexFJ3E1NPImJtUix8gabYg0EBAcQSWckGNWIvTiAhWUiwGYT5iLP5PA4sPErKYnUYW/ydkMRMWi82JjGN0s0iyGFdKFaDQ4gfEWOxOQilFLHYiNjstoqKlL0ktQOSgTR1Q+6oP2o72BWJZaCKEqWMFYm0g7gDij0gW3gMVt0QVIPTEALhQR0GmUQAMAAAAAElFTkSuQmCC) no-repeat;background-size:15px 15px;-webkit-background-size:15px 15px}.footerlink{padding:0 6px}.footerlinkout{padding:6px 0}.footerlinkbar{display:block;text-align:left;font-size:14px;color:#262626;height:39px;line-height:39px;border:1px solid #e0e0e0;padding-left:10px;background:#f9f9f9;overflow:hidden}.footerlinkbar .baiduico{position:relative;float:left;background:url(http://m.baidu.com/static/search/bdsl.png) no-repeat;background-size:25px 25px;-webkit-background-size:25px 25px;width:25px;height:25px;margin:6px 6px 0 0}.footerlinkbar .linkico{position:relative;float:right;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQCAYAAAAiYZ4HAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpBMDQ1OEUzMjRGNTAxMUUzQkNCRkM1MTMyODZCNTM4RSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpBMDQ1OEUzMzRGNTAxMUUzQkNCRkM1MTMyODZCNTM4RSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkEwNDU4RTMwNEY1MDExRTNCQ0JGQzUxMzI4NkI1MzhFIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkEwNDU4RTMxNEY1MDExRTNCQ0JGQzUxMzI4NkI1MzhFIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+AJ3vMQAAAHpJREFUKM9juHTpkg8Q/0fCH4FYEIgZsGEYIxNN0yMg5sCnAYQ70DSdAmIWfBpAeC6apj1AzIRPAxNUEbKmufg0gDAr1DnImtrwaWCAevgRmqZMfBoYoEH7GU2TFyEN79E0+FLFSSxYPN1JtWAlKeKwJQ1WqiQ+kpI3AAdIHbdRS7+FAAAAAElFTkSuQmCC);background-size:6px 9px;-webkit-background-size:6px 8px;width:6px;height:8px;margin:15px 12px 0}#foot-blank{height:145px;display:none}.se_box{position:relative}.cross{position:absolute;top:0;left:-35px;width:35px;height:39px;bottom:0;display:none;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACoAAAAqCAYAAADFw8lbAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAqFJREFUWEfFmclOAzEMQFsWsS/iyFr2HQr8/1fBhQMIv1FThSEZO560RLJamCwvju143OHA34YydEtkU2RNZHUiYcZP+fIlwifyIfIu8u1fsmzkunQ/ERmLvBXKi/Q/nWywbNWC3mjtshCsayM3k9MoQOjuyhEfirxWhIw3MJJ5F/rSLskEVzMCjGHvZI0VLyxH/TgHyAD87LFdID3OUupc7f6Y165Vsxz3wxw12YYlMmxosDjO9T9CBmhMDoVlG96tHd+ToY82B/ao9SHeJhuBXAtBZ9KHUMKntlDu+cVkDkC0ObZTpEzQNRA4TIPGpweWNeI5NNjbNija7ILEucICYWwpbAwZ5uB0NFPaiWG5u7VjwH7bzQqbgmTsuWFd+jSNXVmMm414YPtAsiZ+00QA0jRNm/HzEti+kGHdPUD3C0GtmiXTStm15bjbijsG1DNQg60JyVqkhIN7h0bDjnNmUEuTccJidqScHadg4+hg9W7NT9TbSJsgZwbA1oJkjSqgKZsMoJ4bLKWc3kefgwzHb70UtJPr5Uw5745ttIZmuZDc4QnI9ktZsMmSS0HT5DQ8eQJ+F6QWujw22wT80ivUAlkbtrlCS5KSEshasNOkBFhLmueBrAE7TfMA1RJnktuc41icIXcpFCfOwGp1pVGUDXlvnDgaWOIrFZQ/zfJyByxa8GZcQbMWSPr+eg2JiY/kD+0otXccbTzPLQUOwli2sVNyP8tis+yjFiDYAe8nNbTm3YippBNUjb0ywLuYd1xRkSzAUqiad9kxWRnpstXwbHlONotzuQu5AZZwRDTQ6lLe46ass2jRmrUPO/ZkPrkNcMHgCzNr2C65gScyjGXczH++Se2cH8QORNAOlbe4NETU4H/8WMHViaO0X6PN2vwBXtDwHrylQ1oAAAAASUVORK5CYII=) no-repeat scroll center center transparent;z-index:2;background-size:16px 16px;-webkit-background-size:16px 16px}.sug-visit{position:absolute;right:0;top:1px;bottom:1px;width:52px;z-index:1}.visit{padding:0 5px;line-height:18px;font-size:12px;right:7px;top:6px;color:#878787;position:absolute;border:1px solid #c8c8c8;border-radius:2px}.touched{background-color:#eef3fe!important}.suggest-div button{display:block;border:0;width:100%;height:100%;background:none transparent;-webkit-appearance:none;margin:0;font-size:16px;line-height:22px;position:relative;text-align:left;color:#878787;padding:6px 0 6px 5px;-webkit-box-sizing:border-box}.suggest-div .direct button{padding:6px 5px}.sug-edit{position:absolute;right:0;top:0;bottom:0;width:52px;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAI5JREFUSEtjZCACLF261J6RkbELpPT///9l0dHRB4nQRlgJ0ODny5Yt+w/CIDZhHUSqgBkKo4nURljZqMHwMBohQQFK/ECvnkT3LgX8kyAzGZATPwWGgTMPSiYCGvyEWgYiGfyEAcjxoKaroWZ5EM52QBUjJLkRExajQUH7Qgg5E4HYxMQLUWpgmYiUxA8AOdLMz+iDKvIAAAAASUVORK5CYII=) no-repeat scroll center center #fff;background-size:11px 11px;-webkit-background-size:11px 11px;z-index:1}.suggest-div{position:absolute;z-index:30;left:-1px;top:0;border:1px solid #b4b4b4;border-top:0;width:100%;background:#FFF;border-bottom-left-radius:2px;border-bottom-right-radius:2px;-webkit-border-bottom-left-radius:2px;-webkit-border-bottom-right-radius:2px;box-shadow:0 1px 3px rgba(0,0,0,.2);-webkit-box-shadow:0 1px 3px rgba(0,0,0,.2)}.suggest-close{position:absolute;right:0;bottom:0;text-align:center;color:#666;font-size:14px;line-height:34px;z-index:2;border-left:1px solid #c5c5c5;padding:0 12px;-webkit-tap-highlight-color:rgba(0,0,0,0)}.suggest-close::after{border-left:1px solid #fff;position:absolute;top:0;bottom:0;left:0;content:''}.his,.sug{font-size:16px;line-height:22px;border-bottom:1px solid #d3d3d3;color:#555;word-break:break-all;text-align:left;-webkit-tap-highlight-color:rgba(0,0,0,0);position:relative;padding-right:50px}.sug{color:#878787}.suggest-logo{margin:7px 0 0 5px}.suggest-title{display:-webkit-box;height:34px;background:#f7f7f7}.suggest-title .history-clear{color:#666;font-size:14px;line-height:34px;width:85px;height:34px;-webkit-tap-highlight-color:rgba(0,0,0,0)}.history-clear{border-right:1px solid #c5c5c5;padding:0 5px;position:relative}.history-clear::after{content:'';border-right:1px solid #fff;position:absolute;right:0;top:0;bottom:0}.his em,.sug em{font-weight:700;font-style:normal;color:#333}div.direct{height:50px;padding-right:0}.directIcon{position:relative;margin:0 10px 0 0;float:left;vertical-align:middle}.directText{position:relative}.directText p{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.directText .title{line-height:22px;font-size:16px;color:#333}.directText .info{font-size:12px;line-height:12px;color:#878787;margin:2px 0}.directText .pre{white-space:pre}.directText .num{font-size:20px}.directText .leftBorder{font-size:12px;margin-left:10px;padding-left:10px;color:#878787;border-left:1px solid #BFBFBF}.directIcon1{margin:0 0 0 -3px}.directIcon1 .icon{position:relative;width:42px;height:42px;top:-2px;background-image:none}.directText1{margin-left:42px}.directText1 .title{font-size:16px}.directText1 .right{padding:0 5px;line-height:18px;font-size:12px;right:2px;top:10px;color:#878787;position:absolute;border:1px solid #c8c8c8;border-radius:2px}.directIcon2 .icon{position:relative;top:10px;width:16px;height:16px;background-image:none}.directText2{margin-left:25px}.directText2 .info{line-height:14px;color:green}.directIcon3 .icon{position:relative;width:36px;height:36px;top:1px;background-image:none}.directText3{top:1px;margin-left:46px}.directText3 .title span{position:relative;top:-2px;border:1px solid #6FA4EF;border-radius:2px;color:#fff;text-shadow:1px 1px 1px #4F7DBD;background-color:#6FA4EF;padding:0 2px;line-height:18px;font-size:12px;margin-left:5px}.sug.direct.d4{min-height:50px;height:100%}.directText4 .ball{position:relative;float:left;font-size:12px;text-align:center;width:18px;height:18px;line-height:18px;margin:2px 2px 2px 0;color:#fff;border-radius:9px}.directText4 .redball{background:#bd0005}.directText4 .blueball{background:#2e569b}div.direct.d8,div.direct.d9,div.direct.d10,div.direct.d14,div.direct.d15{height:35px}.directText15 em{font-size:12px}.directText15 a{margin-left:1px;background:url(http://wap.baidu.com/static/index/sugtel.png) no-repeat;background-color:#689AF1;background-size:18px 18px;border-radius:10px;color:#fff;padding:0 5px 0 24px;background-position:1px 1px;margin-right:10px;border:1px solid #689AF1;text-decoration:none}.touched{background-color:#eef3fe!important}.suggest-item-last{border-bottom:0}.animate{-webkit-animation:ChangeColor 300ms linear}@-webkit-keyframes ChangeColor{0%{background:#dae6ff}50%{background:#dae6ff}100%{background:transparent}}.inapp-tuneup .inapp-btn-wrap{text-align:left;padding-top:6px;padding-bottom:3px}.inapp-tuneup .inapp-btn-wrap.resitem{padding-top:0;padding-bottom:13px}.inapp-tuneup .inapp-btn{display:inline-block;padding:0 10px;line-height:30px;height:30px;border:1px solid #B5D1FB;border-radius:3px;-webkit-border-radius:3px;background-color:#F2F7FF;color:#00c}.inapp-tuneup .inapp-btn .arr{display:inline-block;height:12px;width:12px;margin:0 6px 0 4px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAAZCAYAAADE6YVjAAAArElEQVRIx2OwLr1/GIj/E4kZkDCxeg6TophcS/4PiCU2aAaRgtmAeBMxlpBrATMQryDWJ+RYwAjEc9HMaaa2JRPQzJiIHmeUWtKMpn8u1GdUs6QMTe8KaNwwUMuSLCD+h6RvEzR1MVDLElBwbETSsxeIObGoo9gnrEC8DIiPAzE3IfWUxAkzMRZQagnRmJaWUL1YGbVk1BLClthQyQJrSup4sjDdLDlMY0uOAABl1eMfjr1v5wAAAABJRU5ErkJggg==);background-size:12px 12px;-webkit-background-size:12px 12px;vertical-align:-2px}.inapp-tuneup .icon{width:12px;height:12px;margin:0 3px;vertical-align:-2px}.inapp-tuneup .other{color:#999;font-size:12px;margin-left:10px}.inapp-tuneup .title{color:#00c;font-size:17px;padding-bottom:4px;border-bottom:1px solid #F0F0F0;font-weight:400;padding:12px 10px 8px}.inapp-tuneup .wrap-title{margin:0 -10px}.inapp-tuneup .detail{color:#262626;font-size:14px;padding:9px 0 8px}.return-link{text-align:center;padding:10px 0 2px}.return-index,.feedback{color:#555;font-size:13px}.return-index{padding-right:18px}.feedback{padding-left:18px;border-left:1px solid #dadada}.feedback:before{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAlUlEQVRIx+3WwQ3AIAgFUEfXg01n6EQu4hy0A2iQ/yGmiYd/fgaBkEQk7Ug68IHD4dZa/yKO6auweOfAKsw0zT9hp1w74DKrRCSctW+IgPMIG+GecF1ttCnssYu1uQ6BV5YKW+oHQVn4RlEGLgyKwplFEbh6oHRXo6jLOCGoudTaGrQ8GoZHOHplmmFmy5nO29kjEfgFKVQDsNj13egAAAAASUVORK5CYII=)}#copyright{padding:10px 0 12px;font-size:13px;color:#aaa}#foot_logo .logo{position:relative;background:url(http://m.baidu.com/static/search/resultLogo2.png) no-repeat;width:72px;height:23px;background-size:72px 23px;-webkit-background-size:72px 23px;display:inline-block;top:5px;left:0}#layout_switch{text-align:center;padding:12px 0 14px;font-size:13px}.switch_to_iphone{color:#aaa;font-weight:400;padding-right:18px}.switch_to_utouch{color:#555;padding-left:18px;border-left:1px solid #dadada}#openapp{pointer-events:auto;height:50px;margin-right:44px}.btmbanner_img{border:0;height:39px;width:39px;position:absolute;bottom:5px;left:5px}.btmbanner_content{position:absolute;bottom:4px;left:51px;font-size:14px;line-height:19px;color:#3f4865;font-family:微软雅黑;text-align:left}.callapp{display:inline-block;height:32px;line-height:32px;width:76px;position:absolute;bottom:7px;right:50px;border:1px solid #db342a;border-radius:3px;color:#fff;font-size:14px;text-align:center;background:#db342a}#close_baiduapp{pointer-events:auto;position:absolute;right:0;bottom:0;height:48px;width:44px;background:url(http://m.baidu.com/static/search/prompt/close.png) no-repeat 50% 50%;background-size:20px 20px;-webkit-background-size:20px 20px}.call{-webkit-tap-highlight-color:rgba(0,0,0,0);display:inline-block;position:relative;height:38px;width:51px;top:0;background-color:#f0f0f0;border:1px solid #cdcdcd;text-align:center}.call:first-child{border-right:0}.callicon-wrap{position:absolute;top:0;left:-39px;width:39px;height:39px;z-index:10}.baiduapp-icon{width:39px;height:39px;text-align:left}.baiduappcall-wrap{position:absolute;width:108px;top:46px;left:-18px;height:40px;text-align:left;display:none}.open .baiduappcall-wrap{display:block}.focus .callicon-wrap{display:none}.call.active:before{content:"";position:absolute;width:34px;height:34px;background-color:#dedede;top:2px;left:8px;z-index:1}.baiduapp-icon:after,.call:after{background-image:url(http://m.baidu.com/static/search/ala/callicon.png);display:inline-block;content:"";height:20px;margin-top:9px;background-size:37px 20px;overflow:hidden;width:15px}.call:after{position:relative;z-index:2}.qrcode:after{width:22px;background-position:-14px 0;margin-left:-1px}.baiduapp-icon:after{margin:10px 0 0}.baiduapp-icon:before{content:"";position:absolute;height:0;width:0;border:4px solid #fff;border-top-color:#717077;top:18px;right:12px}.open .baiduapp-icon:before{border-color:#fff;border-bottom-color:#717077;top:14px}.baiduappcall-wrap:after,.baiduappcall-wrap:before{content:"";position:absolute;top:-3px;left:23px;-webkit-transform:rotate(45deg);border:1px solid #cdcdcd;height:4px;width:4px}.baiduappcall-wrap:after{border:0;top:-1px;left:22px;width:8px;height:8px;background-color:#f0f0f0}</style>
389
+ <script type="text/javascript">(function(){setTimeout(function() {var node = document.createElement('DIV');node.style.position = 'absolute';node.style.top = 0;node.style.left = 0;node.style.height = Math.max(document.body.scrollHeight, document.documentElement.scrollHeight) + 'px';node.style.width = Math.max(document.body.scrollWidth, document.documentElement.scrollWidth) + 'px';node.style.zIndex = 1000;node.innerHTML = '<div onclick="alert(\'在推广实况工具中,您仅能察看搜索结果的展现样式。搜索结果具体内容请您在www.baidu.com中搜索并查看\');" style="position:absolute;top:0;left:0;width:100%;height:100%;z-index:1000;background:#fff;opacity:.0;filter:alpha(opacity=0)"></div>';document.body.appendChild(node);}, 500);})();</script>
390
+ </body>
391
+ </html>
@@ -1,86 +1,86 @@
1
1
  #coding:UTF-8
2
2
  require 'spec_helper'
3
3
  describe Query::Result::SogouMobile do
4
- subject{Query::Engine::SogouMobile.query('酒店预订')}
5
- it "is an instance of #{Query::Result::SogouMobile}" do
6
- subject.class.should == Query::Result::SogouMobile
7
- end
4
+ subject{Query::Engine::SogouMobile.query('酒店预订')}
5
+ it "is an instance of #{Query::Result::SogouMobile}" do
6
+ subject.class.should == Query::Result::SogouMobile
7
+ end
8
8
 
9
- it "has an array of hashes with the required keys as the result of ads_top" do
10
- subject.ads_top.class.should == Array
11
- subject.ads_top.each do |ad_top|
12
- ad_top.should have_key(:rank)
13
- ad_top.should have_key(:host)
14
- ad_top.should have_key(:href)
15
- ad_top.should have_key(:text)
16
- end
9
+ it "has an array of hashes with the required keys as the result of ads_top" do
10
+ subject.ads_top.class.should == Array
11
+ subject.ads_top.each do |ad_top|
12
+ ad_top.should have_key(:rank)
13
+ ad_top.should have_key(:host)
14
+ ad_top.should have_key(:href)
15
+ ad_top.should have_key(:text)
17
16
  end
17
+ end
18
18
 
19
- it "has an array of hashes with the required keys as the result of ads_right" do
20
- subject.ads_right.class.should == Array
21
- subject.ads_right.each do |ad_right|
22
- ad_right.should have_key(:rank)
23
- ad_right.should have_key(:host)
24
- ad_right.should have_key(:href)
25
- ad_right.should have_key(:text)
26
- end
19
+ it "has an array of hashes with the required keys as the result of ads_right" do
20
+ subject.ads_right.class.should == Array
21
+ subject.ads_right.each do |ad_right|
22
+ ad_right.should have_key(:rank)
23
+ ad_right.should have_key(:host)
24
+ ad_right.should have_key(:href)
25
+ ad_right.should have_key(:text)
27
26
  end
27
+ end
28
28
 
29
- it "has an array of hashes with the required keys as the result of ads_bottom" do
30
- subject.ads_bottom.class.should == Array
31
- subject.ads_bottom.each do |ad_bottom|
32
- ad_bottom.should have_key(:rank)
33
- ad_bottom.should have_key(:host)
34
- ad_bottom.should have_key(:href)
35
- ad_bottom.should have_key(:text)
36
- end
29
+ it "has an array of hashes with the required keys as the result of ads_bottom" do
30
+ subject.ads_bottom.class.should == Array
31
+ subject.ads_bottom.each do |ad_bottom|
32
+ ad_bottom.should have_key(:rank)
33
+ ad_bottom.should have_key(:host)
34
+ ad_bottom.should have_key(:href)
35
+ ad_bottom.should have_key(:text)
37
36
  end
37
+ end
38
38
  end
39
39
 
40
40
  result = Query::Engine::SogouMobile.query('酒店预订')
41
41
  ads_top = result.ads_top
42
42
  describe "types check" do
43
- it "should return Query::Result::SogouMobile" do
44
- result.class.should == Query::Result::SogouMobile
45
- end
43
+ it "should return Query::Result::SogouMobile" do
44
+ result.class.should == Query::Result::SogouMobile
45
+ end
46
46
 
47
- it "should return Array" do
48
- ads_top.class.should == Array
49
- end
47
+ it "should return Array" do
48
+ ads_top.class.should == Array
49
+ end
50
50
 
51
- it "should has keys" do
52
- ads_top[0].should have_key(:rank)
53
- ads_top[0].has_key?(:domain)
54
- ads_top[0].has_key?(:host)
55
- ads_top[0].has_key?(:href)
56
- ads_top[0].has_key?(:title)
57
- end
51
+ it "should has keys" do
52
+ ads_top[0].should have_key(:rank)
53
+ ads_top[0].has_key?(:domain)
54
+ ads_top[0].has_key?(:host)
55
+ ads_top[0].has_key?(:href)
56
+ ads_top[0].has_key?(:title)
57
+ end
58
58
  end
59
59
 
60
60
  describe Query::Result::SogouMobile do
61
- subject{Query::Engine::SogouMobile.query '中华人民共和国中央人民政府'}
61
+ subject{Query::Engine::SogouMobile.query '中华人民共和国中央人民政府'}
62
62
 
63
- it "should be an instance of Query::Result::Sogou" do
64
- subject.class.should == Query::Result::SogouMobile
65
- end
63
+ it "should be an instance of Query::Result::Sogou" do
64
+ subject.class.should == Query::Result::SogouMobile
65
+ end
66
66
 
67
- it "'s next page is another instance of Query::Result::Sogou" do
68
- subject.next.class.should == Query::Result::SogouMobile
69
- end
67
+ it "'s next page is another instance of Query::Result::Sogou" do
68
+ subject.next.class.should == Query::Result::SogouMobile
69
+ end
70
70
 
71
- it "have over 1000 results" do
72
- subject.count.should be_nil
73
- end
71
+ it "have over 1000 results" do
72
+ subject.count.should be_nil
73
+ end
74
74
 
75
- it "puts www.gov.cn to the first place of seo_ranks" do
76
- subject.rank('www.gov.cn')[0].should == 1
77
- end
75
+ it "puts www.gov.cn to the first place of seo_ranks" do
76
+ subject.rank('www.gov.cn')[0].should == 1
77
+ end
78
78
 
79
- it "should have href,text,host elements for each seo result" do
80
- subject.seo_ranks.each do |seo_rank|
81
- seo_rank[:href].should_not == nil
82
- seo_rank[:text].should_not == nil
83
- seo_rank[:host].should_not == nil
84
- end
79
+ it "should have href,text,host elements for each seo result" do
80
+ subject.seo_ranks.each do |seo_rank|
81
+ seo_rank[:href].should_not == nil
82
+ seo_rank[:text].should_not == nil
83
+ seo_rank[:host].should_not == nil
85
84
  end
86
- end
85
+ end
86
+ end
data/spec/spec_helper.rb CHANGED
@@ -10,4 +10,5 @@ $sample_baidu1 = File.join(path_samples,'baidu1.html')
10
10
  $sample_baidu2 = File.join(path_samples,'baidu2.html')
11
11
  $sample_mbaidu1 = File.join(path_samples,'mbaidu1.html')
12
12
  $sample_mbaidu2 = File.join(path_samples,'mbaidu2.html')
13
- $sample_baidu_api = File.join(path_samples,'baidu_api.html')
13
+ $sample_baidu_api = File.join(path_samples,'baidu_api.html')
14
+ $sample_mbaidu_api = File.join(path_samples,'mbaidu_api.html')
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: query
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.20
4
+ version: 0.1.22
5
5
  platform: ruby
6
6
  authors:
7
7
  - seoaqua
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-06-09 00:00:00.000000000 Z
11
+ date: 2014-07-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -105,6 +105,7 @@ files:
105
105
  - lib/query/result.rb
106
106
  - lib/query/result/baidu.rb
107
107
  - lib/query/result/baidu_mobile.rb
108
+ - lib/query/result/baidu_mobile_api.rb
108
109
  - lib/query/result/qihu.rb
109
110
  - lib/query/result/qihu_mobile.rb
110
111
  - lib/query/result/sogou.rb
@@ -117,6 +118,7 @@ files:
117
118
  - spec/baidu_result_api_spec.rb
118
119
  - spec/baidu_spec.rb
119
120
  - spec/mbaidu1_spec.rb
121
+ - spec/mbaidu_api_spec.rb
120
122
  - spec/msogou_spec.rb
121
123
  - spec/qihu_spec.rb
122
124
  - spec/samples/baidu1.html
@@ -125,6 +127,7 @@ files:
125
127
  - spec/samples/baidu_api.html
126
128
  - spec/samples/mbaidu1.html
127
129
  - spec/samples/mbaidu2.html
130
+ - spec/samples/mbaidu_api.html
128
131
  - spec/samples/msogou.html
129
132
  - spec/samples/qihu.html
130
133
  - spec/samples/sogou.html
@@ -163,6 +166,7 @@ test_files:
163
166
  - spec/baidu_result_api_spec.rb
164
167
  - spec/baidu_spec.rb
165
168
  - spec/mbaidu1_spec.rb
169
+ - spec/mbaidu_api_spec.rb
166
170
  - spec/msogou_spec.rb
167
171
  - spec/qihu_spec.rb
168
172
  - spec/samples/baidu1.html
@@ -171,6 +175,7 @@ test_files:
171
175
  - spec/samples/baidu_api.html
172
176
  - spec/samples/mbaidu1.html
173
177
  - spec/samples/mbaidu2.html
178
+ - spec/samples/mbaidu_api.html
174
179
  - spec/samples/msogou.html
175
180
  - spec/samples/qihu.html
176
181
  - spec/samples/sogou.html