query 0.1.20 → 0.1.22

Sign up to get free protection for your applications and to get access to all the features.
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