class MMonitor::Strategies::Lefeng

search.lefeng.com/search/search?key=%E6%AC%A7%E8%8E%B1%E9%9B%85&wt.s_pg=Isearch&wt.s_pf=public

Public Instance Methods

css_path() click to toggle source
# File lib/mmonitor/strategies/lefeng.rb, line 11
def css_path
  {
    body:      'body>div.mainBg>div.main>div.cont>div#clothList',
    list:      'div.smPruArea>div.makeup',
    item:      'div.pruwrap',
    total:     'div#sm-nav > span.tpages > span.tpageNum > i',
    pages:     'div#sm-nav > span.tpages > span.tpageNum > em',
    spu_id:    'id',
    sku_id:    'skuids',
    title:     'dl>dd.nam>a',
    photo_url: 'dl>dt>a>img',
    tag_price: 'dl>dd.pri>del',
    price_url: 'dl>dd.pri>img',
  }
end
page_key() click to toggle source
# File lib/mmonitor/strategies/lefeng.rb, line 31
def page_key
  'pageNo'
end
pages() click to toggle source
# File lib/mmonitor/strategies/lefeng.rb, line 27
def pages
  self.body.at(css_path[:pages]).text.split('/')[1].to_i
end
photo_url() click to toggle source
# File lib/mmonitor/strategies/lefeng.rb, line 43
def photo_url # 产品图片
  self.item.at(css_path[:photo_url])['pagespeed_lazy_src']
end
price() click to toggle source
# File lib/mmonitor/strategies/lefeng.rb, line 35
def price
  price_from_cart(spu_id, sku_id) || pirce_from_ocr(price_url)
end
price_url() click to toggle source
# File lib/mmonitor/strategies/lefeng.rb, line 47
def price_url # 产品售价图片(可选)
  self.item.at(css_path[:price_url])['pagespeed_lazy_src'].gsub('_73_', '_75_')
end
provider() click to toggle source

输出的产品

# File lib/mmonitor/strategies/lefeng.rb, line 7
def provider
  :lefeng
end
sku_id() click to toggle source
# File lib/mmonitor/strategies/lefeng.rb, line 39
def sku_id
   self.item.at('dl')[css_path[:sku_id]]
end

Private Instance Methods

pirce_from_ocr(price_url) click to toggle source

无货产品,通过图片获取价格

# File lib/mmonitor/strategies/lefeng.rb, line 74
def pirce_from_ocr(price_url)
  price_url.gsub!('_73_', '_75_')
  str = MMonitor::Spider.get_ocr(price_url)
  str.match( /\d+\.\d+/ )[0].to_f
end
price_from_cart(spu_id, sku_id) click to toggle source

通过购物车,获取价格

# File lib/mmonitor/strategies/lefeng.rb, line 53
def price_from_cart(spu_id, sku_id)
  url = "http://shopping.lefeng.com/cart/ajaxUpsellcart.jsp"
  params = {
    'productId' => spu_id,
    'skuId' => sku_id,
    'quantity' => 1,
    'itemType' => 0,
    'process' => 'add',
    'skuExtraPriceId' => 0,
    'fromSite' => 'webAllProvince',
    '_' => 1398446675733
  }
  json = MMonitor::Spider.get_json(url, params)
  if json["errorInfo"].blank?
     return json['totalPrice'] if json['totalPrice'].is_a?(Float)
  end
  puts '将通过图片识别价格,很耗资源呢~'
  puts '_'*88
  nil
end