这篇教程Python Pyside2新手应用淘宝客API接口简单获取淘宝客大额推广优惠券的实现写得很实用,希望能帮到您。
1.安装taobao-sdk-python3库
两种方式【pip install taobao_sdk_python3】或者【Pycharm-setting-python interpreter自行安装】。此第三方库支持Python 3.0以上! 链接如下:这里感谢GitHub作者ymj的开源

2.taobao-sdk-python3库中的bug
导入的taobao入口函数里面只引用几种Api的接口调用,如果需要更多,可以直接在里面添加from top.api.rest.xxxxxx import xxxxx 需要的接口!


3.关于使用taobao API的appkey,secret和adzone_id三个常用变量的获得
使用淘宝客的API必须申请为淘宝联盟的生态伙伴,也就是推广人! 淘宝联盟.生态伙伴链接入口:https://pub.alimama.com/?spm=a219t.11817172.0.df7a65f99.e5a76a15LnbpVL
进入后台后需要在推广管理面【新增媒体备案】和【推广位管理】,申请和审核完毕后如下图:不会注册建议多尝试几次,很easy……

 备案管理和推广位申请OK后,需要优先进行APPKEY申请且审核通过,要不然后面将无法通过Python调用API。这是重点,重点,重点
 审核通过后,你可以很容易的得到Key和secret!
 当然,到这里还没有结束,没有结束! 你需要将:①淘宝客【公用】淘口令生成,②淘宝客【推广者】物料搜索,③淘宝客【公用】物料信息查询,这三个淘宝客功能场景API的使用状态申请为已获得!
放心,只要你在申请说明里面填满100个字,就能直接获得!
 而关于adzone_id,你只要去你的推广位-pid字符串取最后的一串数字即可!

4.Python程序实现查找有淘宝客优惠券的方法
直接上代码
import top.api
from decimal import *
import re
appkey = "你的appkey "
secret = "你的secret"
adzone_id = "你的pid最后一串字符串"
def TbkDgMaterialOptional(title):
req = top.api.TbkDgMaterialOptionalRequest(domain='gw.api.taobao.com', port=80)
req.set_app_info(top.appinfo(appkey, secret))
req.adzone_id = adzone_id
req.platform = 2
req.q = title
try:
resp = req.getResponse()
return resp
except Exception as e:
print(e)
def TbkCouponGet(item_id,activity_id):
req = top.api.TbkCouponGetRequest(domain='gw.api.taobao.com', port=80)
req.set_app_info(top.appinfo(appkey, secret))
req.item_id = int(item_id)
req.activity_id = str(activity_id)
try:
resp = req.getResponse()
return resp
except Exception as e:
print(e)
def TbkTpwdCreate(title,url):
req = top.api.TbkTpwdCreateRequest(domain='gw.api.taobao.com', port=80)
req.set_app_info(top.appinfo(appkey, secret))
req.text = title
req.url = url
try:
resp = req.getResponse()
return resp
except Exception as e:
print(e)
if __name__ == '__main__':
response = TbkDgMaterialOptional("澳贝婴儿健身架健身器毯音乐脚踏钢琴3个月宝宝0-1岁新生儿童玩具")
map_data = response['tbk_dg_material_optional_response']['result_list']['map_data'][0]
if map_data.get('coupon_share_url') is None:
print('没有发现优惠券')
else:
title = map_data.get('title')
itemid = map_data.get('item_id')
activityid = map_data.get('coupon_id')
share_url = "https:" + map_data.get('coupon_share_url')
priceresponse = TbkCouponGet(itemid,activityid)
price = priceresponse['tbk_coupon_get_response']['data']
discount = price.get('coupon_amount')
onsale= price.get('coupon_start_fee')
difference = str(float(Decimal(onsale) - Decimal(discount)))
Shortlink = TbkTpwdCreate(title,share_url)
link = Shortlink['tbk_tpwd_create_response']['data']['model']
linkterm = re.compile(r'(.*?)【.*')
truelink = re.findall(linkterm,link)
message = title + "【在售价】" + onsale + "【券后价】" + difference + "👉" + truelink[0]
print(message)

5.程序中的error相关
①提示没有发现API的对应函数。要么API的函数名称不正确,要么前面说的taobao.api.rest入口函数__init__.py中没有import对应的API函数,要么GitHub大神里面没有提供相关的接口函数,自己去taobao.api.rest文件夹里面找找就好了。实在是没有提供,去看淘宝的API文件,会告诉你怎么操作!

②没有依照API提供对应的参数,淘宝的API中请求参数必须值为True的不能丢掉,其他的依照提示来处理,少什么加什么!


③权限不够。要么是你本身平台的权限不够,要么就是没有将淘宝联盟.开放平台所提供的接口状态申请为“已获得”。如果是本身的申请问题,多研究几遍淘宝联盟,生态伙伴的文档就好了。如果是状态没有改,赶紧去改,在调用就OK了!淘宝联盟.开放平台所提供的接口基本够用!嗯!够用!

 以上,就是全部的内容,新人花了一天才搞定,勿喷! 有啥指教的,可以直接留言哈,感谢! 明天准备部署到微信看看,不过还得再学习,加油! python 调用淘宝客api 使用Python全栈打造淘宝客 |