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  //淘宝的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')  //得到商品的id
        activityid = map_data.get('coupon_id')  //得到优惠券的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了!淘宝联盟.开放平台所提供的接口基本够用!嗯!够用!
在这里插入图片描述
在这里插入图片描述
以上,就是全部的内容,新人花了一天才搞定,勿喷!
有啥指教的,可以直接留言哈,感谢!
明天准备部署到微信看看,不过还得再学习,加油!

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值