class MMonitor::Strategies::Suning
search.suning.com/%E5%B7%B4%E9%BB%8E%E6%AC%A7%E8%8E%B1%E9%9B%85/cityId=9264&iy=-1&ct=1&si=5&st=0
Public Instance Methods
css_path()
click to toggle source
# File lib/mmonitor/strategies/suning.rb, line 11 def css_path { body: 'body>div.wrap-search>div.w1190>div.proList.mb10', list: 'div#productTab>div#proShow>ul.container', item: 'li.item', total: 'div#filterContent>div.searchKeyT>i', pages: '#refresh>div.page>span>i#pageTotal', spu_id: 'name', sku_id: 'class', title: 'div > span > a > p', photo_url: 'a > img', price_url: 'div > p > img' } end
get_html(url, params)
click to toggle source
# File lib/mmonitor/strategies/suning.rb, line 51 def get_html(url, params) uri = Addressable::URI.new uri.query_values = params Spider.get_html("#{url}&#{uri.query}") end
page(num)
click to toggle source
# File lib/mmonitor/strategies/suning.rb, line 47 def page(num) num-1 end
page_key()
click to toggle source
# File lib/mmonitor/strategies/suning.rb, line 43 def page_key 'cp' end
price()
click to toggle source
# File lib/mmonitor/strategies/suning.rb, line 39 def price price_from_ajax(sku_id) || pirce_from_ocr(price_url) end
price_url()
click to toggle source
# File lib/mmonitor/strategies/suning.rb, line 34 def price_url # 产品售价图片(可选) dom = self.item.at(css_path[:price_url]) dom['src2'] unless dom.nil? end
provider()
click to toggle source
输出的产品
# File lib/mmonitor/strategies/suning.rb, line 7 def provider :suning end
sku_id()
click to toggle source
# File lib/mmonitor/strategies/suning.rb, line 30 def sku_id self.item[css_path[:sku_id]].split(' ')[0] end
spu_id()
click to toggle source
# File lib/mmonitor/strategies/suning.rb, line 26 def spu_id self.item[css_path[:spu_id]].to_i end
Private Instance Methods
price_from_ajax(sku_id)
click to toggle source
浏览记录,获取价格
# File lib/mmonitor/strategies/suning.rb, line 59 def price_from_ajax(sku_id) url = "http://product.suning.com/0000000000/browseHistory_10052_10051_#{sku_id}_9264_.html" json = MMonitor::Spider.get_json(url) return json['price'].to_f if json.has_key?('price') nil end