espider 0.5.8
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 +7 -0
- data/.gitignore +17 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +22 -0
- data/README.md +29 -0
- data/Rakefile +1 -0
- data/espider.gemspec +28 -0
- data/lib/espider.rb +10 -0
- data/lib/espider/api/baidu/map.rb +9 -0
- data/lib/espider/api/baidu/map/place.rb +53 -0
- data/lib/espider/api/dianping.rb +13 -0
- data/lib/espider/api/dianping/base.rb +35 -0
- data/lib/espider/api/dianping/business.rb +38 -0
- data/lib/espider/api/dianping/coupon.rb +0 -0
- data/lib/espider/api/dianping/deal.rb +0 -0
- data/lib/espider/api/dianping/metadata.rb +28 -0
- data/lib/espider/api/dianping/params.rb +34 -0
- data/lib/espider/api/dianping/review.rb +0 -0
- data/lib/espider/exceptions.rb +2 -0
- data/lib/espider/front/baidu/map/hotel.rb +12 -0
- data/lib/espider/front/baidu/map/hotel/detail.rb +60 -0
- data/lib/espider/front/baidu/map/hotel/list.rb +46 -0
- data/lib/espider/front/dianping.rb +7 -0
- data/lib/espider/front/dianping/hotel.rb +10 -0
- data/lib/espider/front/dianping/hotel/detail.rb +80 -0
- data/lib/espider/front/dianping/hotel/list.rb +56 -0
- data/lib/espider/front/front.rb +23 -0
- data/lib/espider/front/kuxun.rb +7 -0
- data/lib/espider/front/kuxun/detail.rb +100 -0
- data/lib/espider/front/qunar.rb +9 -0
- data/lib/espider/front/qunar/base.rb +25 -0
- data/lib/espider/front/qunar/hotel.rb +173 -0
- data/lib/espider/front/qunar/rank.rb +60 -0
- data/lib/espider/front/ta.rb +27 -0
- data/lib/espider/front/ta/advisor.rb +12 -0
- data/lib/espider/front/ta/daodao.rb +16 -0
- data/lib/espider/version.rb +3 -0
- data/spec/advisor_front_rank_spec.rb +11 -0
- data/spec/baidu_map_api_spec.rb +31 -0
- data/spec/baidu_map_front_spec.rb +53 -0
- data/spec/dadao_front_rank_spec.rb +11 -0
- data/spec/dianping_api_business_spec.rb +29 -0
- data/spec/dianping_api_metadata_spec.rb +44 -0
- data/spec/dianping_front_detail_spec.rb +27 -0
- data/spec/dianping_front_list_spec.rb +17 -0
- data/spec/kuxun_front_detail_spec.rb +26 -0
- data/spec/qunar_front_detail_spec.rb +74 -0
- data/spec/qunar_front_rank_alive_spec.rb +12 -0
- data/spec/qunar_front_rank_spec.rb +28 -0
- data/spec/spec_helper.rb +1 -0
- metadata +176 -0
@@ -0,0 +1,60 @@
|
|
1
|
+
require 'nokogiri'
|
2
|
+
require 'headless'
|
3
|
+
require 'capybara'
|
4
|
+
require 'capybara/dsl'
|
5
|
+
module ESpider
|
6
|
+
module Front
|
7
|
+
module Qunar
|
8
|
+
class Rank < Base
|
9
|
+
include Capybara::DSL
|
10
|
+
def set_cookies
|
11
|
+
headless = Headless.new
|
12
|
+
headless.start
|
13
|
+
Capybara.current_driver = :selenium
|
14
|
+
Capybara.app_host = BASEURI
|
15
|
+
Capybara.default_wait_time = 10
|
16
|
+
begin
|
17
|
+
visit "/city/#{@cityurl}/dt-#{@hotelcode}/"
|
18
|
+
rescue Errno::ECONNREFUSED => e
|
19
|
+
raise
|
20
|
+
end
|
21
|
+
@cookies = {}
|
22
|
+
Capybara.current_session.driver.browser.manage.all_cookies.each { |cookie| @cookies[cookie[:name]] = cookie[:value] }
|
23
|
+
end
|
24
|
+
def load_price_ajax
|
25
|
+
mixKey = parse_mixkey
|
26
|
+
set_cookies
|
27
|
+
raise QunarMixKeyParsedException if mixKey.nil?
|
28
|
+
uri = URI(File.join(BASEURI, 'render', 'detailV2.jsp'))
|
29
|
+
params = {:fromDate=>Date.today+2, :toDate=>Date.today+3, :cityurl=>@cityurl, :HotelSEQ=>@HotelSEQ, :mixKey=>mixKey}
|
30
|
+
headers = Hash.new
|
31
|
+
headers['User-Agent'] = 'Mozilla/5.0 (Windows NT 5.1; rv:26.0) Gecko/20100101 Firefox/26.0'
|
32
|
+
headers['Connection'] = 'keep-alive'
|
33
|
+
headers['Accept-Encoding'] = 'gzip, deflate'
|
34
|
+
headers['Cookie'] = @cookies.map{|k, v| k+'='+v}.join('; ')
|
35
|
+
uri.query = URI.encode_www_form(params)
|
36
|
+
res = HTTParty.get(uri.to_s, :headers=>headers)
|
37
|
+
json_ajax = parse_json_from_response_body(res.body)
|
38
|
+
if !json_ajax['errcode'].nil? and json_ajax['errcode'].eql?110
|
39
|
+
raise QunarIpBlockException,json_ajax
|
40
|
+
end
|
41
|
+
raise QunarIpBlockException,json_ajax if !json_ajax['errcode'].nil? and json_ajax['errcode'].eql?110
|
42
|
+
@ranks = json_ajax['result'].values
|
43
|
+
end
|
44
|
+
def rank(ota, room)
|
45
|
+
@ranks.each { |rank| return rank[15]+1 if rank[3].eql?room and rank[6].eql?ota and rank[9].eql?1 }
|
46
|
+
return nil
|
47
|
+
end
|
48
|
+
def rooms
|
49
|
+
@rooms ||= @ranks.map { |e| e[3] }.uniq
|
50
|
+
end
|
51
|
+
def otas
|
52
|
+
@otas ||= @ranks.map{|e| e[6] }.uniq
|
53
|
+
end
|
54
|
+
def parse_json_from_response_body(res)
|
55
|
+
JSON.parse(res.gsub(/[()]/,""))
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
module ESpider
|
2
|
+
module Front
|
3
|
+
module TA
|
4
|
+
class TripAdvisor
|
5
|
+
attr_accessor :base_url
|
6
|
+
def initialize(ta_id)
|
7
|
+
url = base_url+ta_id
|
8
|
+
res = HTTParty.get(url)
|
9
|
+
@code = res.code
|
10
|
+
@page = res.force_encoding("UTF-8")
|
11
|
+
end
|
12
|
+
def code
|
13
|
+
@code
|
14
|
+
end
|
15
|
+
def rank
|
16
|
+
ranks = []
|
17
|
+
@page.scan(/(Vendor\(.*\);)$/) do |ota|
|
18
|
+
ranks << ota[0].match(/\}\),\s*\".*\",/)[0].sub("}), \"","").sub("\",","")
|
19
|
+
end
|
20
|
+
ranks
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
require 'espider/front/ta/daodao'
|
27
|
+
require 'espider/front/ta/advisor'
|
@@ -0,0 +1,11 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
describe 'Advisor' do
|
3
|
+
it '正确实例化' do
|
4
|
+
ad = ESpider::Front::TA::Advisor.new('199326')
|
5
|
+
ad.should be_an_instance_of ESpider::Front::TA::Advisor
|
6
|
+
end
|
7
|
+
it '正确解析排名数据' do
|
8
|
+
ad = ESpider::Front::TA::Advisor.new('199326')
|
9
|
+
ad.rank.should be_an_instance_of Array
|
10
|
+
end
|
11
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
#coding:utf-8
|
2
|
+
require 'spec_helper'
|
3
|
+
describe "百度地图api测试" do
|
4
|
+
place = ESpider::Baidu::Map::API::Place.new('KNFShrAjm3BvgNEsNLfPSlAP')
|
5
|
+
it "should 被实例化" do
|
6
|
+
place.class.should == ESpider::Baidu::Map::API::Place
|
7
|
+
end
|
8
|
+
it "城市内检索请求" do
|
9
|
+
place.search_by_city('酒店', '北京')
|
10
|
+
place.next_page.class.should == String
|
11
|
+
end
|
12
|
+
it "矩形框检索请求" do
|
13
|
+
place.search_by_rect('酒店', '39.915,116.404,39.975,116.414')
|
14
|
+
place.next_page.class.should == String
|
15
|
+
end
|
16
|
+
it "圆形框检索请求" do
|
17
|
+
place.search_by_city('酒店', '北京')
|
18
|
+
place.next_page.class.should == String
|
19
|
+
end
|
20
|
+
it "http状态码为200" do
|
21
|
+
place.page_code.should == 200
|
22
|
+
end
|
23
|
+
it "正确翻页" do
|
24
|
+
place.next_page.class.should == String
|
25
|
+
place.page_code.should == 200
|
26
|
+
end
|
27
|
+
it "获得查询结果总量" do
|
28
|
+
place.search_by_city('酒店', '北京')
|
29
|
+
place.total.class.should == Fixnum
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,53 @@
|
|
1
|
+
#coding:utf-8
|
2
|
+
require 'spec_helper'
|
3
|
+
describe "百度地图酒店信息抓取测试" do
|
4
|
+
hotel_list = ESpider::Front::Baidu::Map::Hotel::List.new('黔西南')
|
5
|
+
hotels = hotel_list.list
|
6
|
+
hotels_count = hotel_list.total
|
7
|
+
page_num = hotels_count/10
|
8
|
+
hotel = ESpider::Front::Baidu::Map::Hotel::Detail.new('1258371975449935871')
|
9
|
+
it "should 被实例化" do
|
10
|
+
hotel_list.should be_an_instance_of ESpider::Front::Baidu::Map::Hotel::List
|
11
|
+
hotel.should be_an_instance_of ESpider::Front::Baidu::Map::Hotel::Detail
|
12
|
+
end
|
13
|
+
it "should 正确解析酒店数量" do
|
14
|
+
hotels_count.should be_an_instance_of Fixnum
|
15
|
+
end
|
16
|
+
it "should 正确返回酒店列表信息" do
|
17
|
+
hotels.should be_an_instance_of Array
|
18
|
+
hotels[0].should be_an_instance_of Hash
|
19
|
+
end
|
20
|
+
it "should 返回酒店名称" do
|
21
|
+
hotel.hotel_name.should be_an_instance_of String
|
22
|
+
end
|
23
|
+
it "should 返回酒店地址" do
|
24
|
+
hotel.hotel_addr.should be_an_instance_of String
|
25
|
+
end
|
26
|
+
it "should 返回酒店电话" do
|
27
|
+
hotel.hotel_tel.should be_an_instance_of String
|
28
|
+
end
|
29
|
+
it "should 返回酒店经纬度" do
|
30
|
+
hotel.hotel_geo.should be_an_instance_of Array
|
31
|
+
end
|
32
|
+
it "should 返回酒店星级" do
|
33
|
+
hotel.hotel_star.should be_an_instance_of String
|
34
|
+
end
|
35
|
+
it "should 返回酒店类别" do
|
36
|
+
hotel.hotel_category.should be_an_instance_of String
|
37
|
+
end
|
38
|
+
it "should 返回酒店价格" do
|
39
|
+
hotel.hotel_price.should be_an_instance_of String
|
40
|
+
end
|
41
|
+
it "should 返回酒店设施" do
|
42
|
+
hotel.hotel_facility.should be_an_instance_of String
|
43
|
+
end
|
44
|
+
it "should 返回酒店短评" do
|
45
|
+
hotel.hotel_short_comm.should be_an_instance_of String
|
46
|
+
end
|
47
|
+
it "should 返回酒店评论" do
|
48
|
+
hotel.hotel_review.should be_an_instance_of Array
|
49
|
+
end
|
50
|
+
it "should 返回酒店图片地址" do
|
51
|
+
hotel.hotel_image('669775d035aa1b42fd0eb008').should be_an_instance_of Array
|
52
|
+
end
|
53
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
describe 'Daodao' do
|
3
|
+
it '正确实例化' do
|
4
|
+
dd = ESpider::Front::TA::Daodao.new('199326')
|
5
|
+
dd.should be_an_instance_of ESpider::Front::TA::Daodao
|
6
|
+
end
|
7
|
+
it '正确解析排名数据' do
|
8
|
+
dd = ESpider::Front::TA::Daodao.new('199326')
|
9
|
+
dd.rank.should be_an_instance_of Array
|
10
|
+
end
|
11
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
describe "大众点评api测试,business类api" do
|
3
|
+
# it '正确实例化' do
|
4
|
+
# busi = ESpider::API::Dianping::Business.new('16935220','0c3d163c8fff4639a3372aea71df52a1')
|
5
|
+
# busi.class.should == ESpider::API::Dianping::Business
|
6
|
+
# end
|
7
|
+
# it '正确调用find_businesses接口,传入经纬度信息' do
|
8
|
+
# busi = ESpider::API::Dianping::Business.new('16935220','0c3d163c8fff4639a3372aea71df52a1')
|
9
|
+
# busi.find_businesses('上海','','31.18268013000488','121.42769622802734').should == true
|
10
|
+
# busi.get.class.should == String
|
11
|
+
# end
|
12
|
+
# it '正确调用find_businesses接口,并翻页' do
|
13
|
+
# busi = ESpider::API::Dianping::Business.new('16935220','0c3d163c8fff4639a3372aea71df52a1')
|
14
|
+
# busi.find_businesses('上海','','31.18268013000488','121.42769622802734').should == true
|
15
|
+
# busi.get.class.should == String
|
16
|
+
# p busi.get
|
17
|
+
# busi.next_page.class.should == String
|
18
|
+
# end
|
19
|
+
# it '正确调用find_businesses接口,加入分类信息' do
|
20
|
+
# busi = ESpider::API::Dianping::Business.new('16935220','0c3d163c8fff4639a3372aea71df52a1')
|
21
|
+
# busi.find_businesses('上海','','31.18268013000488','121.42769622802734').should == true
|
22
|
+
# busi.set_category('酒店')
|
23
|
+
# busi.next_page.class.should == String
|
24
|
+
# end
|
25
|
+
it '正确调用/get_single_business接口,返回单个商户信息' do
|
26
|
+
busi = ESpider::API::Dianping::Business.new('16935220','0c3d163c8fff4639a3372aea71df52a1')
|
27
|
+
busi.get_single_business('8733744').should be_instance_of String
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
#coding:utf-8
|
2
|
+
require 'spec_helper'
|
3
|
+
describe "大众点评api测试,metadata类api" do
|
4
|
+
mdata = ESpider::API::Dianping::Metadata.new('16935220','0c3d163c8fff4639a3372aea71df52a1')
|
5
|
+
it '正确实例化' do
|
6
|
+
mdata.class.should == ESpider::API::Dianping::Metadata
|
7
|
+
end
|
8
|
+
it '获取支持商户搜索的最新城市列表' do
|
9
|
+
mdata.get_cities_with_businesses
|
10
|
+
mdata.get.class.should == String
|
11
|
+
end
|
12
|
+
it '获取支持商户搜索的最新城市下属区域列表 ' do
|
13
|
+
mdata.get_regions_with_businesses
|
14
|
+
mdata.get.class.should == String
|
15
|
+
end
|
16
|
+
it '获取支持商户搜索的最新分类列表 ' do
|
17
|
+
mdata.get_categories_with_businesses
|
18
|
+
mdata.get.class.should == String
|
19
|
+
end
|
20
|
+
it '获取支持团购搜索的最新城市列表 ' do
|
21
|
+
mdata.get_cities_with_deals
|
22
|
+
mdata.get.class.should == String
|
23
|
+
end
|
24
|
+
it '获取支持团购搜索的最新城市下属区域列表 ' do
|
25
|
+
mdata.get_regions_with_deals
|
26
|
+
mdata.get.class.should == String
|
27
|
+
end
|
28
|
+
it '获取支持团购搜索的最新分类列表 ' do
|
29
|
+
mdata.get_categories_with_deals
|
30
|
+
mdata.get.class.should == String
|
31
|
+
end
|
32
|
+
it '获取支持优惠券搜索的最新城市列表 ' do
|
33
|
+
mdata.get_cities_with_coupons
|
34
|
+
mdata.get.class.should == String
|
35
|
+
end
|
36
|
+
it '获取支持优惠券搜索的最新城市下属区域列表 ' do
|
37
|
+
mdata.get_regions_with_coupons
|
38
|
+
mdata.get.class.should == String
|
39
|
+
end
|
40
|
+
it '获取支持优惠券搜索的最新分类列表 ' do
|
41
|
+
mdata.get_categories_with_coupons
|
42
|
+
mdata.get.class.should == String
|
43
|
+
end
|
44
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
describe "ESpider::Front::Dianping::Hotel::Detail" do
|
3
|
+
it '实例化' do
|
4
|
+
detail = ESpider::Front::Dianping::Hotel::Detail.new('2136037')
|
5
|
+
detail.should be_instance_of ESpider::Front::Dianping::Hotel::Detail
|
6
|
+
end
|
7
|
+
it '返回酒店名称' do
|
8
|
+
detail = ESpider::Front::Dianping::Hotel::Detail.new('2136037')
|
9
|
+
detail.name.should be_instance_of String
|
10
|
+
end
|
11
|
+
it '返回酒店描述' do
|
12
|
+
detail = ESpider::Front::Dianping::Hotel::Detail.new('2869420')
|
13
|
+
detail.intro.should be_instance_of String
|
14
|
+
end
|
15
|
+
it '返回酒店设施' do
|
16
|
+
detail = ESpider::Front::Dianping::Hotel::Detail.new('2869420')
|
17
|
+
detail.facilities.should be_instance_of Array
|
18
|
+
end
|
19
|
+
it '返回酒店图片' do
|
20
|
+
detail = ESpider::Front::Dianping::Hotel::Detail.new('2869420')
|
21
|
+
detail.images.should be_instance_of Array
|
22
|
+
end
|
23
|
+
it '返回酒店评论' do
|
24
|
+
detail = ESpider::Front::Dianping::Hotel::Detail.new('2869420')
|
25
|
+
detail.comments.should be_instance_of Array
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
describe "ESpider::Front::Dianping::Hotel::List" do
|
3
|
+
list = ESpider::Front::Dianping::Hotel::List.new('1')
|
4
|
+
it '实例化' do
|
5
|
+
list.should be_instance_of ESpider::Front::Dianping::Hotel::List
|
6
|
+
end
|
7
|
+
it '返回名称' do
|
8
|
+
list.should be_instance_of ESpider::Front::Dianping::Hotel::List
|
9
|
+
end
|
10
|
+
it '返回酒店列表' do
|
11
|
+
list.hotels(1).should be_instance_of Array
|
12
|
+
end
|
13
|
+
it '正确计算酒店数量' do
|
14
|
+
list = ESpider::Front::Dianping::Hotel::List.new('2','1489')
|
15
|
+
list.total.should be_instance_of Fixnum
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
describe "ESpider::Front::Kuxun::Detail" do
|
3
|
+
detail = ESpider::Front::Kuxun::Detail.new('jiarijiudian-haerbin-hotel_1')
|
4
|
+
it '实例化' do
|
5
|
+
detail.should be_instance_of ESpider::Front::Kuxun::Detail
|
6
|
+
end
|
7
|
+
it '返回酒店名称' do
|
8
|
+
detail.name.should be_instance_of String
|
9
|
+
end
|
10
|
+
it '返回酒店地址' do
|
11
|
+
detail.address.should be_instance_of String
|
12
|
+
end
|
13
|
+
it '返回酒店描述' do
|
14
|
+
detail.intro.should be_instance_of String
|
15
|
+
end
|
16
|
+
it '返回酒店设施' do
|
17
|
+
detail.facilities.should be_instance_of Array
|
18
|
+
end
|
19
|
+
it '返回酒店图片' do
|
20
|
+
detail.images.should be_instance_of Array
|
21
|
+
end
|
22
|
+
it '返回酒店经纬度' do
|
23
|
+
detail.xy.should be_instance_of Array
|
24
|
+
detail.xy.size.should == 2
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,74 @@
|
|
1
|
+
#coding: UTF-8
|
2
|
+
require 'spec_helper'
|
3
|
+
describe "qunar信息抓取测试" do
|
4
|
+
qunar_id = "beijing_city_2807"
|
5
|
+
city = "beijing_city"
|
6
|
+
hotel = ESpider::Front::Qunar::Hotel.new(qunar_id)
|
7
|
+
it 'should 被正确实例化' do
|
8
|
+
hotel.should be_an_instance_of ESpider::Front::Qunar::Hotel
|
9
|
+
end
|
10
|
+
it 'should 返回酒店名称' do
|
11
|
+
hotel.name.should be_an_instance_of String
|
12
|
+
end
|
13
|
+
it 'should 返回正确的酒店星级' do
|
14
|
+
hotel.star.should >= 0
|
15
|
+
hotel.star.should <= 5
|
16
|
+
end
|
17
|
+
it 'should 返回qunar酒店城市英文名' do
|
18
|
+
hotel.citynameEn.should == 'beijing'
|
19
|
+
end
|
20
|
+
it 'should 返回qunar酒店地址' do
|
21
|
+
hotel.address.should be_an_instance_of String
|
22
|
+
end
|
23
|
+
it 'should 返回qunar酒店电话' do
|
24
|
+
hotel.phone.should be_an_instance_of String
|
25
|
+
end
|
26
|
+
# it 'should 返回qunar酒店描述' do
|
27
|
+
# hotel.desc.class.should == String
|
28
|
+
# end
|
29
|
+
# it 'should 返回qunar酒店开业日期' do
|
30
|
+
# hotel.insttime.should == '2008年'
|
31
|
+
# end
|
32
|
+
# it 'should 返回qunar酒店概述' do
|
33
|
+
# hotel.abstract_desc.should == '位于北京市东城区菊儿胡同、紧邻北二环主干线。网友评价说“小吃很多也便宜”。'
|
34
|
+
# end
|
35
|
+
# it 'should 返回qunar酒店品牌' do
|
36
|
+
# hotel.brand.should == '汉庭酒店'
|
37
|
+
# end
|
38
|
+
# it 'should 返回qunar酒店参考价格' do
|
39
|
+
# hotel.reference_price.should == '120'
|
40
|
+
# end
|
41
|
+
# it 'should 返回qunar酒店google经纬度' do
|
42
|
+
# hotel.xy.should == ["39.939323", "116.4054"]
|
43
|
+
# end
|
44
|
+
# it 'should 返回qunar酒店设施' do
|
45
|
+
# hotel.facilities.should == [{"name"=>"房间设施", "info"=>["宽带上网", "空调", "暖气", "24小时热水", "吹风机", "国际长途电话"]}, {"name"=>"酒店服务", "info"=>["接待外宾", "叫醒服务", "行李寄存", "洗衣服务", "租车", "早餐服务"]}, {"name"=>"酒店设施", "info"=>["无线上网公共区域", "停车场", "无烟房", "中式餐厅", "会议室", "商务中心"]}]
|
46
|
+
# end
|
47
|
+
# it 'should 返回qunar交通信息' do
|
48
|
+
# hotel.traffic.should == [{"name"=>"战鼓楼", "distance"=>"594.056489643499"}, {"name"=>"蓬蒿剧场", "distance"=>"395.18496791364"}, {"name"=>"中央戏剧学院实验剧场", "distance"=>"425.239611398247"}, {"name"=>"和中堂足道(交道口店)", "distance"=>"488.729152256305"}, {"name"=>"周末相声俱乐部", "distance"=>"524.822582351895"}, {"name"=>"鲸鱼桌游吧", "distance"=>"790.623187595583"}, {"name"=>"一来二去桌游主题休闲吧", "distance"=>"988.900711965127"}, {"name"=>"东城区文化馆", "distance"=>"606.324700795644"}, {"name"=>"国话小剧场", "distance"=>"757.099876935085"}, {"name"=>"东城区图书馆", "distance"=>"661.53698062375"}]
|
49
|
+
# end
|
50
|
+
# it 'should 返回qunar酒店最后装修时间' do
|
51
|
+
# hotel.decorate_date.should == ''
|
52
|
+
# end
|
53
|
+
# it 'should 返回qunar酒店评论' do
|
54
|
+
# hotel.comments.should == ''
|
55
|
+
# end
|
56
|
+
# it 'should 返回qunar酒店评论总数' do
|
57
|
+
# hotel.total_comment.should_not = '339'
|
58
|
+
# end
|
59
|
+
# it 'should 返回qunar酒店评论好评数' do
|
60
|
+
# hotel.good_comment.should_not = '250'
|
61
|
+
# end
|
62
|
+
# it 'should 返回qunar酒店图片' do
|
63
|
+
# hotel.images.should == ''
|
64
|
+
# end
|
65
|
+
# it 'should 返回qunar酒店评分' do
|
66
|
+
# hotel.score.to_f.should < 10.0
|
67
|
+
# end
|
68
|
+
# it 'should 返回qunar酒店城市中文名' do
|
69
|
+
# hotel.citynameCn.should == '北京'
|
70
|
+
# end
|
71
|
+
# it 'should 返回qunar酒店城市英文名' do
|
72
|
+
# hotel.citynameEn.should == 'beijing'
|
73
|
+
# end
|
74
|
+
end
|