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