美文网首页Py
使用 Python 全栈打造淘宝客微信机器人(上)

使用 Python 全栈打造淘宝客微信机器人(上)

作者: 遗忘_eea2 | 来源:发表于2018-10-26 15:09 被阅读0次

    本篇  将会涉及:

    Python 环境下淘宝客 API 的使用;

    使用 Python 第三方模块 itchat 实现微信的登录的自动回复操作;

    PyQt5 的布局管理与多线程应用

    1 、前言

    1.1、什么是淘宝客

    相信很多人都听过或者接触过各类导购 APP、QQ 群、微信群分享一些淘宝商品的优惠券或是其他的优惠信息。

    用户可以在这些渠道上获取到相较于从淘宝平台搜索出来的商品更加优惠的价格或者是领取到面额较大的优惠券。

    这些渠道,都是属于淘宝客的渠道。淘宝客是淘宝平台推出的一种按成交计费的推广模式,通常也指通过这种模式赚钱的人。

    前几年淘宝客红火的时候,各类导购网站、导购 APP 以及优惠券 QQ 群、微信群层出不穷,如今倒是稍显平淡了。虽说淘宝客在蜂拥的互联网上平淡了起来,但是丝毫影响不了新加入的人群的心态,在淘宝网在搜索 “微信人导购机器”,还可以看到很多商家在售卖淘宝客的微信机器人:

    这些微信机器人的功能其实主要也是自动回复群内的人的消息,以及定时推送一些优惠商品信息等。

    今天,我们就使用哪哪都会出现,哪哪都行的大蟒蛇——Python,来打造一个淘宝客微信机器人,实现在群聊中自动回复搜索并返回商品这一淘宝客导购微信机器人最基本的功能。

    1.2、 注册成为淘宝客

    要写一个淘宝客的微信机器人,我们首先需要成为一个淘宝客,才能获取到淘宝客相关的优惠资源。方法很简单,在淘宝客的推广平台——阿里妈妈淘宝联盟(http://pub.alimama.com/)上注册一个一个帐号即可,我们可以使用淘宝的账号进行登录。

    在登录之后,我们可以在 “我的联盟” 中的 “推广管理” 中进行推广媒体的设置:

    在其中,我们可以添加网站、APP、导购、软件的推广等。在此,我已经添加了一个网站的媒体,并且已经提交验证成功了。推广媒体是淘宝客中一个基本的推广商品渠道,用于归属不同的推广位,如果没有推广媒体,就没有办法创建推广位,进而无法进行淘宝客的推广。大家可以按照自己的情况创建推广媒体,推荐使用网站推广媒体。

    在创建好推广媒体之后,我们还需要创建一个推广位,推广位用于归属具体的淘宝客推广商品,在此我已经创建了网站的推广位,其中的 PID 在我们后面调用 API 接口的时候会使用到,大家注意一下:

    如果没有推广位,那么我们可以在 “联盟产品” 中点击 “精选清单” 的立即下载按钮:

    其会让我们选择推广位,这时候可以新建一个推广位:

    这样我们就获得了一个推广网站的推广位。

    再回到推广媒体管理上,在我们添加的网站媒体通过了阿里妈妈的验证成功后,我们会得到一个联盟合作网站的 API:

    点击 “查看” 链接,会跳转到阿里开放平台上我们创建的网站推广位(推广位为在阿里开放平台上显示为一个应用)的概览中,其中显示了我们的应用接口信息,接口数据和我们获得的权限 API 等:

    APP 证书中的 App Key 和 App Secret 会在调用 api 接口时作为凭证来认证,下方的功能场景中显示我们获取的 API 接口:在这里我的应用有:

    淘宝客基础 API

    淘宝客 - 媒体 - 内容消息

    淘口令基础包

    淘宝客 - 工具 - 超级搜索

    其中淘宝客基础 API 中包含了其他的一些接口的,我们主要使用这个 API 包。

    这样,我们就可以开始通过 API 接口获取到淘宝客的推广信息。

    2、Python 环境下使用淘宝客 API

    在注册成为淘宝客,添加推广位获取到淘宝客的基础 API 之后,我们就可以通过调用淘宝客的 API 来获取淘宝客推广信息了。

    2.1 、了解淘宝客接口

    在调用淘宝客的 API 之前,我们先来看一下,在提交网站推广位之后获得的淘宝客基础 API 中都有些什么接口:

    其中一共有 23 个接口,虽然是一个基础 API 包,但还是包含了淘宝客推广商品中的大多数信息的获取。在本篇 Chat 介绍创建的淘宝客微信机器人中,我们主要使用以下两个接口:

    好券清单 API【导购】taobao.tbk.dg.item.coupon.get

    淘宝客淘口令 taobao.tbk.tpwd.create

    其他的 api 接口大家可以根据自己的需要添加在程序中。

    好券清单 API 用于返回淘宝客商品的优惠券信息,我们可以通过其来搜索特定关键词下的商品的优惠券,以作为结果返回给用户。其接受的参数如下:

    淘宝客淘口令 API,用于将淘宝客推广链接转换为淘口令,以实现复制优惠券信息后,打开淘宝就能跳转到推广链接的效果。其接受的参数如下:

    可以发现,我们主要使用 adzoneid、淘口令弹框内容和淘口令跳转的目标链接三个参数,其中 adzoneid 可以从推广位的 PID 中获取,淘口令弹框内容可以设置为商品的标题,淘口令跳转的目标链接则是优惠券的链接地址,这两个参数都可以从好券清单 API 中获取到。下面我们来看看如何调用这两个接口。

    2.2、调用淘宝客 API 接口

    在 API 接口的介绍中,我们可以看到其中有多种语言的请求实例,如下所示:

    最幸运的是,其提供了 Python 的请求示例,这样我们可以稍微修改一下示例代码(示例中为 Python2 版本的代码)就能对淘宝客的 API 进行调用了,是不是很美好?

    虽然看起来很美好,但是我们还是需要额外做一些工作。

    下载阿里提供的 SDK

    看到示例代码中的第 2 行引入了一个 top.api 的模块,这个模块属于阿里开放平台提供的 SDK,使用 pip 等 Python 包管理工具并不能下载安装。在阿里开发平台的每个应用中,都提供了相应的 SDK 的下载链接,我们选择 “Python 版本”,在点击下载即可。

    下载完成的 SDK 是一个名为 “sdk-python-*” 的压缩包,其中还有一个压缩包和一个空的文件夹:

    我们需要的 top 模块就在 taobao-sdk-PYTHON-auto 那个压缩包中,继续解压,得到以下文件:

    面对一个陌生的包,好的习惯当然是查看 readme 之类的文件来知晓使用方法,我们打开 READ_ME.TXT 文件,里面的内容不多,但说明了 top 模块如何使用:复制 top 文件夹到自己的 Python 项目路径下,让 Python 执行器能够引入这个 top 包即可。

    得到了淘宝客的 SDK 模块以及模块的使用方法后,我们似乎可以开干了。如果你和我一样,使用的是 Python 3 的话,那么可以还需要再等等。

    因为阿里开放平台提供的这个 SDK 是 Python 2 版本的,直接在 Python 3 环境下调用会报错,而报错的主要位置都位于 top 文件夹的 api 文件夹下的 base.py 这个文件:

    我们需要对其进行代码风格和规范的转换,可以使用 Python 官方提供的 2to3.py 这个工具。

    这一步完成之后,我们的准备工作就已经结束了。下面使用 Python 来调用一下淘宝客的接口。

    调用淘宝客 API

    当前,我们的项目目录如下所示:

    在项目主文件夹下,只有一个淘宝客的 top 包,我们新建一个 Python 文件,用于调试调用淘宝客的 API:

    首先在 usetbkapi.py 文件中引入淘宝客的包——top,并且定义好公共参数(App Key 和 App Secret,两者从阿里开放平台 - 应用的概览中获取)和好券清单需要的 adzoneid(淘宝联盟 - 推广位管理 - 推广位的 PID 中 mmxxxxxxxxx 的第三位):

    首先是好券清单的 API,在阿里开放平台的 API 文档中,其请求示例如下所示:

    我们将其修改一下,变成了如下形式:

    函数 gettbkcoupon() 接受一个参数作为淘宝客商品优惠券的搜索词,我们运行一下这个函数,以 “Python” 作为搜索词看看返回的结果:

    请求成功,最后得到一个包含 5 个商品信息的 json:

    因为我们查询的是默认的服装类目下的商品,所以返回了 5 个商品标题中含有 “Python” 的服装负责商品,我们注意一下商品信息中的字段

    通过返回的这些信息,我们就可以制作一个简单的商品信息,这里暂且不表。

    在电脑上点击打开,显示的就是我们在淘宝软件中常见的优惠券页面了:

    接着来看看淘口令 API。

    淘口令是淘宝的一种推广方式,专门针对于无线端的商品推广。淘口令在手机上复制之后,打开淘宝软件,就会自动跳转到淘口令的目标链接。所以淘口令相当于淘宝软件的一个暗号,既避免了其他平台对淘宝客链接的封杀,也方便推广和传播。一般淘宝联盟自动生成的淘口令推广信息如下图:

    我们现在使用淘口令 API 来生成淘宝客商品优惠券的淘口令。

    其请求的参数接受两个必选参数和三个可选参数,参数信息如下:

    在此我们用商品标题作为参数 text 的值,商品的优惠券链接作为参数 url 的值,可选参数中用我本人的头像作为淘口令弹框的 logo。

    请求成功的话,其会返回形如下所示的 json:

    其中的 model 值就是生成的淘口令。

    淘口令 API 的请求示例为:

    我们同样将其修改一下,方便传递参数和调用,修改后的淘口令请求如下所示:

    接下来,我们将代码整理一下,在获取商品优惠券的 gettbkcoupon() 函数中调用生成商品淘口令的 generate_ttoken() 函数,完整代码如下:

     .

    最后得到每个商品的商品标题,商品优惠券链接和商品优惠券的淘口令:

    返回的结果中,每一个以人民币符号起始和结束的就是淘口令

    相关文章

      网友评论

        本文标题:使用 Python 全栈打造淘宝客微信机器人(上)

        本文链接:https://www.haomeiwen.com/subject/cqzktqtx.html