hotel_price 0.5.4 → 0.5.5

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
  SHA256:
3
- metadata.gz: 0a82631788a305757b3d0bffbe8298a441fba18511d678a80c20a2e045f9d408
4
- data.tar.gz: 8eadeb31ec3d5f4e2dc179f51e15cf3bd2955b5a5afdf8c427ab68f565880833
3
+ metadata.gz: 936bc9b0a0c708967b88a86509f12e5a677f2b2ee6bcd88698154e801935418e
4
+ data.tar.gz: 01e264e7b9391bcb5e8f872f5097673665d2135c60ef94033a0b370105a7f376
5
5
  SHA512:
6
- metadata.gz: 1f1cf23d50086583c2096adefcd7a207cad65e775a5810c8e89ea0690a4a4995cff6dd8c0d2fe88dd59569f5768b1271c9cbe5ad09aa6348c6173dc51ee0b29a
7
- data.tar.gz: d254d83f23aabb34bc1164b8d263cecc13d2fc26d7b4ca4a63401399245304f05c786384ed18eda81e3bb84621386e930c4d59b4442aab7dd9068d9383057346
6
+ metadata.gz: f8d200030f6757cea8ab13a2d93264bb1f34aff18784b93ad74f6295e6f6f54b5d3512276d4122cb99dcbcf601ca9f66abf2616e3889c022ca487dbc06a3d683
7
+ data.tar.gz: 438aaefa420b71023d57f6df72ee33f262347e54a8afdcda01a9f96607149aa32d51daf7751124f3853eab59f64f2e63ef1abb458bed6f46363b6ee27899ff52
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- hotel_price (0.5.3)
4
+ hotel_price (0.5.4)
5
5
  activesupport (~> 6.0.2.1)
6
6
  json (~> 2.3.0)
7
7
  nokogiri (~> 1.10.9)
@@ -23,7 +23,7 @@ module HotelPrice::Agoda
23
23
  room_name_element = driver.find_elements(:xpath, "//span[@data-selenium='masterroom-title-name']")
24
24
  room_name = room_name_element.first.text unless room_name_element.empty?
25
25
 
26
- { date: date, min_price: price, hotel_name: hotel_name, room_name: room_name }
26
+ { checkin_date: checkin_date, min_price: price, hotel_name: hotel_name, room_name: room_name }
27
27
  end
28
28
 
29
29
  def self.make_query_string(checkin_date, num_adults)
@@ -26,7 +26,7 @@ module HotelPrice::Booking
26
26
  room_name_element = driver.find_elements(:class_name, "hprt-ws-roomtype-link")
27
27
  room_name = room_name_element.first.text unless room_name_element.empty?
28
28
 
29
- { date: date, min_price: price, hotel_name: hotel_name, room_name: room_name }
29
+ { checkin_date: checkin_date, min_price: price, hotel_name: hotel_name, room_name: room_name }
30
30
  end
31
31
 
32
32
  def self.make_query_string(checkin_date, num_adults)
@@ -23,7 +23,7 @@ module HotelPrice::Expedia
23
23
  room_name_element = driver.find_elements(:xpath, "//h3[@data-stid='room-info-title-heading']")
24
24
  room_name = room_name_element.first.text unless room_name_element.empty?
25
25
 
26
- { date: date, min_price: price, hotel_name: hotel_name, room_name: room_name }
26
+ { checkin_date: checkin_date, min_price: price, hotel_name: hotel_name, room_name: room_name }
27
27
  end
28
28
 
29
29
  def self.make_query_string(checkin_date, num_adults)
@@ -2,7 +2,7 @@ module HotelPrice::Rakuten
2
2
  class RakutenAPI
3
3
  def initialize params
4
4
  @config = {
5
- rakuten_hotel_id: params[:rakuten_hotel_id] ||= 0,
5
+ rakuten_hotel_id: params[:rakuten_hotel_id].to_s ||= 0,
6
6
  rakuten_api_key: params[:rakuten_api_key] ||= ENV["RT_API_KEY"]
7
7
  }
8
8
  end
@@ -45,56 +45,7 @@ module HotelPrice::Rakuten
45
45
  "format=json&sort=%2BroomCharge&searchPattern=1&applicationId=#{@config[:rakuten_api_key]}&hotelNo=#{rakuten_hotel_id}&adultNum=#{num_adults}&checkinDate=#{checkin_date}&checkoutDate=#{checkout_date}&squeezeCondition="
46
46
  end
47
47
 
48
- def get_min_price params
49
- params[:breakfast] ||= ""
50
- try = 0
51
- begin
52
- base_url = "https://app.rakuten.co.jp/services/api/Travel/VacantHotelSearch/20131024?format=json&sort=%2BroomCharge&searchPattern=1"
53
- url = [base_url, "&applicationId=", @config[:rakuten_api_key], "&adultNum=", params[:adult_num].to_s, "&checkinDate=", params[:checkin_date].to_s, "&checkoutDate=", (Date.parse(params[:checkin_date]) + 1).strftime("%Y-%m-%d"), "&hotelNo=", @config[:rakuten_hotel_id].to_s, "&squeezeCondition=", params[:breakfast]].join
54
- json = Net::HTTP.get(URI.parse(url))
55
- result = JSON.parse(json)
56
- try = 0
57
- begin
58
- data_hash = if result["error"] == "not_found"
59
- {
60
- date: DateTime.now.strftime("%Y-%m-%d"),
61
- checkin_date: params[:checkin_date],
62
- rakuten_hotel_id: params[:rakuten_hotel_id],
63
- adult_num: params[:adult_num],
64
- breakfast: params[:breakfast],
65
- plan_num: 0,
66
- min_price: 0
67
- }
68
- elsif result["error"] == "wrong_parameterd"
69
- "入力した値が正しくありません。"
70
- else
71
- {
72
- date: DateTime.now.strftime("%Y-%m-%d"),
73
- checkin_date: result["hotels"][0]["hotel"][1]["roomInfo"][1]["dailyCharge"]["stayDate"],
74
- rakuten_hotel_id: params[:rakuten_hotel_id],
75
- hotel_name: result["hotels"][0]["hotel"][0]["hotelBasicInfo"]["hotelName"],
76
- adult_num: params[:adult_num],
77
- breakfast: params[:breakfast],
78
- plan_num: result["pagingInfo"]["recordCount"],
79
- room_name: result["hotels"][0]["hotel"][1]["roomInfo"][0]["roomBasicInfo"]["roomName"],
80
- plan_name: result["hotels"][0]["hotel"][1]["roomInfo"][0]["roomBasicInfo"]["planName"],
81
- min_price: result["hotels"][0]["hotel"][1]["roomInfo"][1]["dailyCharge"]["rakutenCharge"]
82
- }
83
- end
84
- rescue StandardError => e
85
- try += 1
86
- sleep 2
87
- puts "エラー発生。リトライします。\n #{e.message}"
88
- retry if try < 5
89
- end
90
- rescue StandardError => e
91
- try += 1
92
- sleep 5
93
- retry if try < 5
94
- end
95
- data_hash
96
- end
97
-
48
+
98
49
  def hotel_info
99
50
  uri = URI.parse("https://app.rakuten.co.jp/services/api/Travel/HotelDetailSearch/20131024?hotelNo=" + @config[:rakuten_hotel_id].to_s + "&applicationId=" + @config[:rakuten_api_key].to_s + "&datumType=1&responseType=large")
100
51
  json = Net::HTTP.get(uri)
@@ -462,7 +462,6 @@ module HotelPrice::Rakuten
462
462
  # end
463
463
 
464
464
  def daily_data
465
- puts "start"
466
465
  @driver.find_element(:xpath, "/html/body/table[2]/tbody/tr/td[3]/table[2]/tbody/tr[1]/td[1]/table/tbody/tr/td[3]/a/img").click
467
466
  @driver.find_element(:xpath, "/html/body/table[2]/tbody/tr/td[3]/table[5]/tbody/tr[2]/td[1]/table/tbody/tr[3]/td/table/tbody/tr/td[1]/input").click
468
467
  sleep 3
@@ -476,7 +475,6 @@ module HotelPrice::Rakuten
476
475
  select = Selenium::WebDriver::Support::Select.new(@driver.find_element(:name, "f_date"))
477
476
  select.select_by(:value, value)
478
477
  end
479
- puts "scraper"
480
478
  @driver.find_element(:xpath, '//input[@value = "表示"]').click
481
479
  rows = @driver.find_elements(:xpath, "//tr")
482
480
  data = []
@@ -84,7 +84,7 @@ module HotelPrice::Rakuten
84
84
  driver.get "https://hotel.travel.rakuten.co.jp/hotelinfo/plan/#{rakuten_hotel_id}"
85
85
  driver.find_element(:id, "focus1").click
86
86
  driver.find_element(:id, "dh-squeezes-submit").click
87
- sleep 30
87
+ sleep 3
88
88
  plan_num = driver.find_elements(:class, "planThumb")
89
89
  driver.quit
90
90
  plan_num.size
@@ -93,10 +93,10 @@ module HotelPrice::Rakuten
93
93
  def self.get_dayuse_plan_num rakuten_hotel_id, mode = 0
94
94
  driver = HotelPrice.get_selenium_driver mode
95
95
  driver.get "https://hotel.travel.rakuten.co.jp/hotelinfo/plan/#{rakuten_hotel_id}"
96
- sleep 10
96
+ sleep 5
97
97
  driver.find_element(:id, "du-radio").click
98
98
  driver.find_element(:id, "dh-submit").click
99
- sleep 10
99
+ sleep 5
100
100
  plan_num = driver.find_elements(:class, "planThumb")
101
101
  driver.quit
102
102
  plan_num.size
@@ -1,3 +1,3 @@
1
1
  module HotelPrice
2
- VERSION = "0.5.4"
2
+ VERSION = "0.5.5"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hotel_price
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.4
4
+ version: 0.5.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Fumitake Kawasaki
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2020-04-14 00:00:00.000000000 Z
12
+ date: 2020-04-20 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler