python + django + 淘宝API 应用一例
这个例子是调出淘宝卖家 etanliuyang 的所有商品(这个店我有股份的),本例中调用的淘宝API是不需要用户授权的(apiType=1),所以sessionid可以随便给个值,不一定像我这样。我的这个例子处理了返回的JSON,所以如果你的py是2.5,可能需要下载一个json模块,可以参考:http://dengyin2000.iteye.com/blog/333556
本贴主要参考了:http://www.iteye.com/topic/307081
P.S: 我是一个捣腾货的人,写的代码没有优雅可言,只希望大家能通过本贴理解淘宝API的原理。
import urllib,md5,time,json,httplibdef ali2(request): request.session['a'] = 1 sessionid = request.session.session_key params = { 'sip_appkey':'20426', 'sip_appsecret':'144098c0d58411ddbc14a92bef58a353', 'sip_apiname':'taobao.items.get', 'sip_timestamp':time.strftime("%Y-%m-%d %H:%M:%S"), 'v':'1.0', 'sip_sessionid':sessionid, 'props':'', 'format':'json', 'fields':'iid,title,nick,pic_path,delist_time,price', 'nicks':'etanliuyang', 'page_no':'1', 'page_size':'10', } #以下5行是将POST的参数升序排列,然后做出1个sipsign参数,这是阿里的要求。 keys = params.keys() keys.sort() temp = "".join( for x in keys]) sipsign = md5.md5('144098c0d58411ddbc14a92bef58a353'+temp).hexdigest().upper() params.update({'sip_sign':sipsign}) args = urllib.urlencode(params) alihost = 'sip.alisoft.com' urls = '/sip/rest/' conn = httplib.HTTPConnection(alihost) conn.request('POST',urls+'?'+args) r = conn.getresponse() data = json.read(r.read()) data = data['rsp']['items'] return render_to_response('items.html',{'records':data})
items.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>商品列表</title></head><body><table width="200" border="0" align="center" cellpadding="6" cellspacing="1" bgcolor="#CCCCCC"><tr> <td nowrap="nowrap" bgcolor="#FFFFFF">图片</td> <td nowrap="nowrap" bgcolor="#FFFFFF"> 卖家</td> <td nowrap="nowrap" bgcolor="#FFFFFF">商品名称</td> <td nowrap="nowrap" bgcolor="#FFFFFF">商品价格</td> <td nowrap="nowrap" bgcolor="#FFFFFF">下架时间</td></tr>{% for record in records %}<tr> <td nowrap="nowrap" bgcolor="#FFFFFF"><img src="{{ record.pic_path }}" height="50" border="0" /></td> <td nowrap="nowrap" bgcolor="#FFFFFF">{{ record.nick }}</td> <td nowrap="nowrap" bgcolor="#FFFFFF"><a href="http://item.taobao.com/auction/item_detail-db2-{{ record.iid }}.htm" target="_blank">{{ record.title }}</a></td> <td nowrap="nowrap" bgcolor="#FFFFFF">{{ record.price }}</td> <td nowrap="nowrap" bgcolor="#FFFFFF">{{ record.delist_time }}</td></tr>{% endfor %}</table></body></html>
页:
[1]