duka 发表于 2013-2-7 19:20:12

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]
查看完整版本: python + django + 淘宝API 应用一例