刚学了下rails,写了个淘宝客网站玩玩

2013-03-18 16:16:11 +08:00
 lpisces
http://75ms.com
5707 次点击
所在节点    分享创造
25 条回复
iYu
2013-03-18 16:43:30 +08:00
请问 这些信息是人工编辑还是爬虫自己爬的阿。
lpisces
2013-03-18 16:45:06 +08:00
用ruby调用淘宝rest api
acpp
2013-03-18 23:29:58 +08:00
@lpisces 我能问下 刚学是学了多久吗? 难道是刚刚看了点内容,就开始做这个了吗,还是之前有搞过
huyipeng
2013-03-18 23:38:10 +08:00
你好,能请教一下你是如何用ruby处理淘宝API的?
lyhapple
2013-03-19 11:00:23 +08:00
问一下,前期准备工作有哪些,要怎么才能申请到淘宝API, 比哪网站域名或空间是否需要备案等等.
再讲讲API的处理方式吧。
lpisces
2013-03-19 12:08:15 +08:00
@acpp 之前搞过php,python之类的
花了两个礼拜把ror guide看了一遍

@lyhapple 这个是实验性质的,很多地方很粗糙,打算重构。 vps是香港的

api调用

def sign(app_secret, params)
str = []
str << app_secret
str << params.sort.join
str << app_secret
Digest::MD5.hexdigest(str.join).upcase
end

def api_url
api_url = 'http://gw.api.taobao.com/router/rest'
end

def url(params)
url = []
params.sort.each {|k, v| url << (k.to_s << '=' << URI.encode(v.to_s).to_s)}
api_url << '?' << (url.join '&')
end

def get(url)
res = Net::HTTP.get_response(URI.parse(url))
res.body
end

def product_params(app_key, app_secret, cid)
params = {}
params[:format] = 'json'
params[:timestamp] = (Time.now).strftime("%Y-%m-%d %H:%M:%S")
params[:sign_method] = 'md5'
params[:v] = '2.0'
params[:method] = 'taobao.taobaoke.items.coupon.get'
params[:fields] = ['item_imgs', 'num_iid', 'seller_id', 'nick', 'title', 'price', 'item_location', 'seller_credit_score', 'click_url', 'shop_click_url', 'pic_url', 'taobaoke_cat_click_url', 'keyword_click_url', 'coupon_rate', 'coupon_price', 'coupon_start_time', 'coupon_end_time', 'commission_rate', 'commission', 'commission_num', 'commission_volume', 'volume', 'shop_type'].join ','
params[:cid] = cid
params[:keyword] = ''
params[:sort] = 'volume_desc'
params[:app_key] = app_key
params[:page_no] = 1
params[:page_size] = 100
params[:shop_type] = 'b'
params[:sign] = sign(app_secret, params)
params
end

task :product => :environment do
app_key = Setting.g 'app_key', 'taobao'
app_secret = Setting.g 'app_secret', 'taobao'
categories = Category.where("level = ? or id = ?", 2, 50008055).all
categories.each do |c|
next if TaobaoCategory.where(:cid => c.id).first.nil?
params = product_params app_key, app_secret, c.id
json = get(url(params))
p json
products = ActiveSupport::JSON.decode(json)
next if products.nil? || products['taobaoke_items_coupon_get_response'].nil? || products['taobaoke_items_coupon_get_response']['taobaoke_items'].nil?
items = products['taobaoke_items_coupon_get_response']['taobaoke_items']['taobaoke_item']
next unless items.respond_to? :each
items.each do |p|
img_json = get(url(img_params app_key, app_secret, p['num_iid']))
imgs = ActiveSupport::JSON.decode(img_json)
imgs = imgs['items_list_get_response']['items']['item']
unless imgs[0]['item_imgs'].empty?
p['imgs'] = []
imgs[0]['item_imgs']["item_img"].each do |i|
p['imgs'] << i['url']
end
end
save_product p, c.id, Product
end
end
end

代码凑活看吧
insub
2013-03-19 12:37:46 +08:00
麻烦问下,从动手到上线花了多长时间呢?同为railser.
lpisces
2013-03-19 13:27:50 +08:00
@insub 这个不算上线吧,很多想写的没有写,现在你看到的这些业余时间一个礼拜左右吧
xgdy
2013-03-19 13:32:22 +08:00
@lpisces 挺不错..
不会写,眼馋
lpisces
2013-03-19 13:37:17 +08:00
@xgdy

不会写没关系啊,写代码的都是码农,有点子就行

不想做满大街的美丽说那种

不知道你有啥好点子
xgdy
2013-03-19 13:44:52 +08:00
@lpisces 一直致力于成为码农,可惜进展太慢.

你现在这个点子就不错啊

目标精准,只要有IP,就会有提成拿了
lpisces
2013-03-19 15:29:04 +08:00
@xgdy 那有那么简单,做得不好,重新推到
xgdy
2013-03-20 08:33:36 +08:00
@lpisces 别推到啊.挺好的..求分享
da_a
2013-03-20 13:00:34 +08:00
@lpisces 淘宝客怎么玩?
lpisces
2013-03-20 14:16:53 +08:00
insub
2013-03-20 16:44:09 +08:00
@lpisces

thk!
不过其实我是一直为自己的不够敏捷所困扰,所以有那么一问....往往预估工作量也就一周,打算一个月上线的项目,常常要两个甚至三个月上线。目前虽有改善但还是比较苦恼。
有什么经验可以传授么?
da_a
2013-03-20 18:15:19 +08:00
@lpisces 谢谢 我其实是在问淘宝客模式
Mac
2013-03-20 18:48:38 +08:00
淘宝客现在不反现金了吧?反的是积分?
xgdy
2013-03-21 09:31:19 +08:00
@lpisces 谢谢~ 我去看看
lpisces
2013-03-21 16:46:43 +08:00
@insub 其实我跟你的问题一样,总是寻求一个敏捷的方式,但是总被各种因素干扰。

我现在觉得就是快速实现原型,然后推到重构。这样最少可以有一个直观的东西让人看到,自己也可以在实现原型的过程中发现问题,便于在重构时避免跳进重复的坑。这就是传说中的快速迭代。

关于rails,我觉得快速开发是其最大的特点之一,但是其与众不同之处是bdd这种模式,很可惜,我对unit test,RSpec这样的东西不是很了解,但觉得是很好的东西,应该用起来提高代码质量。不能总是用smoking ping模式来调试代码。然后用bdd模式写代码可以让自己目标性更加强一点。

现在这个demo完全没有test代码,可见一斑。

粗浅见解,见笑了~

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/63308

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX